A、无限循环 B、循环次数不定 C、执行4次 D、执行3次 217、以下正确的定义语句是( )。(2分)
A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0};
218、程序段int k,a[3][3]={1,2,3,4,5,6,7,8,9}; for (k=0;k<3;k++) printf(“%d”,a[k][2-k]); 输出结果是( C )。(2分)
A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7
219、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是( D )。(2分) A、用户指定传递方式 B、无传递 C、单向值传递 D、地址传递 220、若有说明:int a[3][4]={0};则下面正确的叙述是( B )。(2分) A、只有元素a[0][0]可得到初值0 B、此说明语句不正确 C、数组a中各元素都可得到初值,但其值不一定为0 D、数组a中每个元素均可得到初值0 221、以下不正确的说法是( C )。(2分)
A、C语言规定实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式 C、实参可以是任意类型 D、形参应与其对应得实参类型一致 222、在定义语句int *f();中,标识符f代表的是( D )。(2分)
A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的行指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名 223、已知:int a,*p=&a;则下列函数调用中错误的是( D )。(2分) A、scanf(\ B、scanf(\ C、printf(\ D、printf(\
224、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分) A、1,0 B、1,1 C、0,1 D、0,0
225、若要用fopen函数打开一个新的二进制文件,该文件既能读也能写,则文件打开方式为( B)(2分)
A、ab+ B、wb+ C、rb+ D、ab 二,填空题
1、一个C源程序中至少应包含一个[main] 函数。
2、a是整型变量,则执行表达式a=25/3%3后a的值为。[2] 3、int m=5,y=2;则表达式y+=y- =m*=y的值为。[-16]
4、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(\的输出结果分别是[2,1]
5、条件表达式的格式为表达式1?表达式2:表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较[高]的类型
6、当运行以下程序时,从键盘键入right?
while((c=getchar())!='?') putchar(++c) } [sjhiu?]
7、C语言中的数组必须先[定义],然后使用。
29
8、如果需要从被调用函数返回一个函数值,被调用函数必须包含【return】语句。
9、已知:float f1=3.2,f2,*pf1=&f1;f2=f1,则*f2的值为。[3.2]
10、以下程序
void fun(char *a, char *b) { a=b; (*a)++; } main ()
{ char c1=\p1=&c1; p2=&c2; fun(p1,p2); printf(“&c&c\\n”,c1,c2); }
运行后的输出结果是 。[&c&c]
11、字符串常量“123”在内存中的字节数是 。[4字节] 12、已有定义 :int x=3 ;则表达式 :x=x+1.78 的值是 。【4】 13、int a=24; printf(\输出结果是 。【30】 14、当a=3,b=2,c=1时,表达式f=a>b>c的值是 。【0】 15、下面程序的运行结果是 。【x=1,y=20】 #include
if(i%2!=0) {x=x+i;i++;} y=y+i++; } while (i<=7);
printf(\}
16、以下语句char str[10]={\的输出结果是 。[5]
17、为了便于区别全局变量和局部变量,通常将全局变量的首字母 。[用大写字母表示] 18、已知:int b=5,*p=&b;并且b的地址为4000,则“printf(\”的输出结果是 。【4000,5】 19、程序main()
{ int a[2][3]={{1,2,3},{4,5,6}}; int m,*ptr; ptr=&a[0][0];
m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf(\}
的运行结果是 。【15】
20、引用C语言标准库函数,一般要用【文件包含】 预处理命令将其头文件包含进来。 21、在C语言程序中,符号常量的定义要使用【宏定义】 预处理命令。
30
22、逻辑运算符!是[自右至左] 结合性。 23、下面的程序的运行结果是 。【s=254】 #include
while(count<=7) {n=n*a; s=s+n; ++count;} printf(\}
24[strcat] (字符数组名1,字符数组名2)把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\\0”。
25、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是[整形] 。 26、数组在内存中占用一段连续的存储空间,它的首地址由 【数组名】表示 27若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是 【12】 28、在一个C源程序中,注释部分二侧的分界符为 。【/*和*/】 29、在C语言程序中,转义字符“\\n”的功能是 [换行] 。 30、当a=5,b=4,c=2时,表达式a>b!=c的值是 。【1】
32、在C语言程序中,用关键字错误!未找到引用源。定义字符型变量。 33若m是一个三位数,则百位数字为错误!未找到引用源。
34、执行下列语句:float a; int b; a = b =24.5/5; printf(“%f,%d” , a, b); 输出结果是 【4.000000,4】 35、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为错误!未找到引用源。,n的值为错误!未找到引用源。
36、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 。[1]
37、当运行以下程序时,从键盘输入-1 0
scanf(\ do{ if(a>0) {m=2*n; b++;} else{n=m+n; a+=2; b++;} }while(a==b); printf(\}
38、C语言规定了以字符[‘\\0’] 作为字符串结束标志。
39、如果一函数只允许同一程序文件中的函数调用,则应在该函数定义前加上[static] 修饰。
40、对数组元素的引用方法有下标法和[指针法] 两种。
41、对于“int a[4];”可理解为数组a有4个元素,每个元素都是整型数据,那么,对于“int *a[4];”的理解就是数组a
有4个元素,每个元素都是[指针变量] 。
31
42、在C语言中,八进制整型常量以【0】 作为前缀。
43、已有定义 :int x=0,y=0;, 则计算表达式 :(x+=2,y=x+3/2,y+5) 后 , 表达式的值是 。【8】 44、下面程序段的运行结果是 【a=-5】。 int i=1,a=0,s=1;
do{a=a+s*i; s=-s; i++;} while (i<=10); printf(\
45、要使指针变量与变量之间建立联系,可以用运算符[*] 来定义一个指针变量 46、设int a[10],*p=a;则对a[3]的引用可以是p[3]或 [*(p+3)]。 47、C语言程序是由[函数] 构成的。
48、在C语言程序中,用关键字 【float】定义单精度实型变量。 49、若m是一个三位数,则十位数字为 [m/10-m/100*10]。 50、int a=24; printf(\输出结果是 。[18]
51、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 。 [x 52、下面程序的运行结果是 。[x=1,y=20] #include if(i%2!=0) {x=x+i;i++;} y=y+i++; } while (i<=7); printf(\} 53、形式参数也是【局部】变量。 54、以下程序 #include fun(int x, int y, int *cp, int *dp) { *cp=x+y; *dp=x-y; } main( ) { int a,b,c,d; a=30; b=50; fun(a, b, &c, &d); printf(\return 0; } 输出结果是 。 【80,-20】 55、程序main() 32