(2 分) A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1 我的答案:D 得分:2 分 19、C 语言编译系统对宏命令的处理是_______。(2 分) A.在程序运行时进行的 B.在程序连接时进行的 C.和 C 程序中的其他语句同时进行编译的 D.在对源程序中其他成分正式编译之前进行的 我的答案:D 得分:2 分 20、 以下程序段的输出结果是______。 for(a=8;a>0;a--) { if(a%3==0) { printf("%d".--a);continue; } } (2 分) A.741 B.52 C.863 D.8754 我的答案:C 得分:2 分 21、下面是对 s 的初始化,数组长度是 4 是______。(2 分) A.char s[]=" abc" ; B.char s[]={' a' ,' b' ,' c' }; C.char s[]=" "; D.char s[]=" abcdef" 我的答案:A 得分:2 分 22、凡是函数中未指定存储类别的局部变量,其隐含的存储类别是_______。(2 分) A.auto B.static C.extern D.register 我的答案:A 得分:2 分 23、下列描述中不正确的是______。(2 分) A.字符型数组中可能存放字符串 B.可以对字符型数组进行整体输入/输出 C.可以对整型数组进行整体输入/输出 D.不能在赋值语句中通过赋值运算符" =" 对字符型数组进行整体赋值 我的答案:C 得分:2 分 24、 请选出可用作 C 语言用户标识符的一组标识符______。 (2 分) A.void define WORD B.a3_b3 _789 IF C.For -gif CASE D.3d UNDO sizeof 我的答案:B 得分:2 分 25、 若 int 类型数据占两个字节,则下列语句 int k=-1; printf("&d,%u\n",k,k); 的输出结果为______。 (2 分) A.-1,-1 B.-1,32767 C.-1,32768 D.-1,65535 我的答案:D 得分:2 分 26、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));。在此函数调用语句中实参的个数是_______。(2 分) A.3 B.4 C.5 D.6 我的答案:A 得分:2 分 27、请选出合法的 C 语言的赋值语句(2 分) A.a=b=58; B.i++; C.a=58,b=58; D.k=int(a+b); 我的答案:A 得分:2 分 28、a 和 b 均定义为 int 型,c 定义为 double 型,以下不正确的 scanf()是______。(2 分) A.scanf(" %d%lx,%le" ,& a,& b,& c); B.scanf(" %2d*%d%lf" ,& a,& b,& c); C.scanf(" %x%*d%o" ,& a,& b); D.scanf(" %x%lo,%6.2f" ,& a,& b,& c); 我的答案:D 得分:2 分 29、以下叙述中不正确的是_______。(2 分) A.在不同的函数中可以使用相同名字的变量 B.函数中的形式参数是局部变量 C.在一个函数内定义的变量只在本函数范围内有效 D.在一个函数内的复合语句中定义的变量在本函数范围内有效 我的答案:D 得分:2 分 30、C 语言中 while 和 do-while 循环的主要区别是______。(2 分) A.do-while 的循环体至少无条件执行一次 B.do-while 允许从外部转到循环体内 C.while 的循环控制条件比 do-while 的循环控制条件严格 D.do-while 的循环体不能是复合语句 我的答案:A 得分:2 分 31、 以下程序的输出结果是______。 main() {int i; for(i=1;i<=5;i++) { if(i%2) printf("#"); else continue; printf("*"); } printf("$\n"); } (2 分) A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 我的答案:B 得分:2 分 32、表达式 19&23 的值是______。(2 分) A.0x17 B.0x13 C.0xf8 D.0xec 我的答案:B 得分:2 分 33、以下不正确的定义是__.(2 分) A.double a[5]={2.0,4.0,6.0,8.0,10.0} B.int b[5]={0,1,3,7,9} C.char c[]={' 1' ,' 2' ,' 3' ,' 4' ,' 5' } D.char d[]={' \x10' ,' \xa' ,' \x8' } 我的答案:B 得分:2 分 34、若二维数组 b 有 m 列,则在 b[i][j]前的元素个数为______。(2 分) A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1 我的答案:B 得分:2 分 35、fopen()函数的第2个参数取值"w+"和"a+"时都可以写入数据,它们之间的差别是_______。(2 分) A." w+" 时可在中间插入数据,而" a+" 时只能在末尾追加数据 B." w+" 时和" a+" 时只能在末尾追加数据 C.在文件存在时," w+" 时清除原文件数据,而" a+" 时保留原文件数据 D." w+" 时不能在中间插入数据,而" a+" 时只能在末尾追加数据 我的答案:C 得分:2 分 36、#define 能作简单的代替,用宏代替计算多项式 5*x*x+4*x+3 之值的函数 f()正确的定义是_______。(2 分) A.#define f(x) 5*x*x+4*x+3 B.#define f 5*x*x+4*x+3 C.#define f(x) (5*(x)*(x)+4*(x)+3) D.#define (5*x*x+4*x+3) f(x) 我的答案:C 得分:2 分 37、 下程序的执行结果是() {int s=1; printf("%d %d %d\n",s,++s,s--);} (2 分) A.1 1 1 B.1 2 2 C.1 2 3 D.1 2 1 我的答案:A 得分:2 分 38、 以下程序片段执行后的输出结果是______。 int b; for(b=1; ;b++); printf("%d",b++); (2 分) A.2 B.1 C.4 D.死循环 我的答案:D 得分:2 分 39、若调用一个函数,且此函数中没有 return 语句,则正确的说法是______。(2 分) A.该函数没有返回值 B.返回若干个系统默认值 C.能返回一个用户所希望的函数值 D.返回一个不确定值 我的答案:D 得分:2 分 40、在说明一个结构体变量时系统分配给它的存储空间是______。(2 分) A.该结构体中占用最大存储空间的成员所需存储空间 B.该结构体中所有成员所需存储空间的总和 C.该结构体中第 1 个成员所需存储空间 D.该结构体中最后一个成员所需存储空间 我的答案:B 得分:2 分 41、若有定义:char *p1,*p2,*p3,*p4,ch;。则不能正确赋值的程序语句为______。(2 分) A.p1=& ch;scanf(" %c" ,p1); B.p2=(char*)malloc(1);scanf(" %c" ,p2); C.p3=getchar(); D.p4=& ch;*p4=getchar(); 我的答案:C 得分:2 分 42、 下面程序的输出是______。 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2)); } (2 分) A.3 B.4 C.1 D.2 我的答案:A 得分:2 分 43、______是非法的 C 语言转义字符(2 分) A.' B.018' C.' D.ª' 我的答案:B 得分:2 分 44、在以下运算符中,优先级最高的运算符是______。(2 分) A.< = B./ C.!= D.& & 我的答案:B 得分:2 分 45、设有定义:int x=1,y=-1;。则语句"printf("%d\n",(x--&++y);"的输出结果是______。(2 分) A.1 B.0 C.-1 D.2 我的答案:B 得分:2 分 46、 以下程序的输出结果是______。 #include main() {int i=0,a=0; while(i<20) { for(; ;) {if((i%10)==0)break; else i--} i+=11;a+=I; } printf("%d\n",a); } (2 分) A.21 B.32 C.33 D.11 我的答案:B 得分:2 分 47、以下不能对二维数组 a 进行正确初始化的语句是______。(2 分) A.int a[2][3]={0} B.int a[][3]={{1,2},{0}}; C.int a[2][3]={{1,2},{3,4},{5,6}}; D.int a[][3]={1,2,3,4,5,6}; 我的答案:C 得分:2 分 48、 若有如下语句 int f=1; while(!(--f)) { printf("%d\n",f-=2); } 则上面程序段______。 (2 分) A.输出的是-2 B.输出的是 1 和-2 C.输出的是 3 和 0 D.是死循环 我的答案:A 得分:2 分 49、以下叙述中不正确的是_______。(2 分) A.在 C 语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 B.在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容 C.在 C 语言中,外部变量的隐含类别是自动存储类别 D.在 C 语言中,函数形参可以说明为 register 变量 我的答案:C 得分:2 分 50、getchar()语句可以接受一个______。(2 分) A.整型变量表达式 B.实型变量值 C.字符串 D.字符 我的答案:D 得分:2 分