17.以下選項(xiàng)中不能使指針正確指向字符串的是( )
A) char *ch;*ch=“hello”
B) char *ch=“hello”
C) char *ch=“hello”;ch=“bye”
D) char *ch”;ch=“hello”
18.若有以下說明和定義語(yǔ)句:union uti {int n;double g;char ch[9];}
struct srt{float xy;union uti uv;}aa;則變量aa所占內(nèi)存的字節(jié)數(shù)是( )
A) 9
B) 8
C) 13
D) 17
二、填空題(每空1分,共12分)
1.C語(yǔ)言源程序文件的擴(kuò)展名是 (1) ,經(jīng)過編譯后,生成文件的擴(kuò)展名是 (2) ,經(jīng)過連接后,生成文件的擴(kuò)展名是 (3) 。
2.把a(bǔ),b定義成長(zhǎng)整型變量的定義語(yǔ)句是 (4)
3.設(shè)x和y均為整型變量,且x=3,y=2,則1.0*x/y表達(dá)式的值為 (5)
4.已有定義:float x=5.5;則表達(dá)式:x=(int)x+2的值為 (6)
5.已有定義:int x=0,y=0;則表達(dá)式:(x+=2,y=x+3/2,y+5)后,變量x的值為 (7),變量y的值為 (8),表達(dá)式的值為 (9) 。
6.執(zhí)行以下for(i=1;i++《=5)語(yǔ)句后,變量i的值為(10) 。
7.數(shù)組是表示類型相同的數(shù)據(jù),而結(jié)構(gòu)體則是若干 (11) 數(shù)據(jù)項(xiàng)的集合。
8.C語(yǔ)言中文件是指 (12) 。
三、程序補(bǔ)充題(每空3分,共24分)
1.從鍵盤上輸入若干個(gè)學(xué)生成績(jī),統(tǒng)計(jì)并輸出成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。
main()
{ float s,gmax,gmin;
scanf(“%f,”&s);
gmax=s;gmin=s;
while (1)
{if(s》gmax)gmax=s;
if (2) gmin=s;
scanf(“%f”,&s);}
printf(“gmax=%f\ngmin=%f\n”gmax,gmin);}
2.求任意兩個(gè)正整數(shù)的公約數(shù)和最小公倍數(shù)
#include “stdio.h”
main()
{int r,m,n,temp,gcd,lcm;
printf(“enter two number please:”);
scanf(“ (3) ”,&m,&n);
lcm=m*n;
while(m%n!=0)
{r=m%n;(4);n=r;}
gcd=n;lcm=lcm/n;
printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);}
3.求y的x次方。
Double fun1(double y,int x)
main(){int i;
double z=1.0;
for(i=1;i (5) ;i++)
z= (6) ;
return z;}
4.對(duì)輸入一個(gè)整數(shù)進(jìn)行判斷,若是偶數(shù),輸出even,否則輸出odd,在子函數(shù)fun2功能是判定整數(shù)是否為偶數(shù),若是偶數(shù),返回1,否則返回0。
int fun2(int x)
{if(x%2==0) (7) ;
return 0 ;}
main()
{int n;
scanf(“%d”,&n);
if (8) printf(“even\n”);
else printf(“odd\n”);}