1、二级试题1new笔试题一、选择题(16) 若有定义:int a=8,b=5,c;,执行语句C=a/b+0.4;后,c的值为A) 1.4 B) 1 C) 2.0 D) 2(17) 若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符A的ASCII值加上1。(18) 以下程序段的输出结果是int a=1234;printf(%2dn,a);A) 12 B) 34 C) 1234 D) 提示出错、无结果(19) 以下选项中不属于C语言的类型的是A) signed short imt B) u
2、nsigned long intC) unsigned int D) long short(20) 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf(%d%d%d,&a,&b,d); B) scanf(%d%d%d,&a,&b,&d);C) scanf(%d%d%d,a,b,d); D) scanf(%d%d%d,a,b,*d);(21) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=
3、4000L*10L;(22) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(23) 若定义:int a=511,*b=&a;, 则printf(%dn,*b);的输出结果为A) 无确定值 B) a的地址 C) 512 D) 511(24) 以下程序的输出结果是main() int a=5,b=4,c=6,d;printf(%dn,d=ab?(ac?a:c):(b);A) 5 B) 4 C) 6
4、 D) 不确定(25) 以下程序中,while循环的循环次数是main() int i=0;while(i10) if(i1) continue;if(I=5) break; i+;.A)1 B)10 C)6 D) 死循环,不能确定次数(26) 以下程序的输出结果是main() int a=0,i;for(i=1;i5;i+) switch(i) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A) 31 B) 13 C) 10 D) 20(27) 以下程序的输出结果是main() int a=4,b=5,c=0
5、,d;d=!a&!b|!c;printf(%dn,d); A) 1 B) 0 C) 非0的数 D) -1(28) 以下程序的输出结果是#include main() int i=0,a=0;while(i=A&ch=Z) ch=ch-A+a;return ch;main() char s=ABC+abc=defDEF,*p=s;while(*p) *p=cchar(*p);p+;printf(%sn,s);A) abc+ABC=DEFdef B) abc+abc=defdef C) abcaABCDEFdef D) abcabcdefdef(30) 以下程序的输出结果是int f() stat
6、ic int i=0;int s=1;s+=i; i+;return s; main() int i,a=0;for(i=0;i5;i+) a+=f();printf(%dn,a);A) 20 B) 24 C) 25 D) 15(31) 以下程序段的输出结果是char s=141141abct;printf (%dn,strlen(s);A) 9 B) 12 C) 13 D) 14(32) 若有以下程序#include void f(int n);main() void f(int n);f(5);void f(int n) printf(%dn,n); 则以下叙述中不正确的是A) 若只在主函
7、数中对函数f进行说明,则只能在主函数中正确调用函数fB) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D) 函数f无返回值,所以可用void将其类型定义为无值型(33) 以下程序调用findmax函数返回数组中的最大值findmax(int *a,int n) int *p,*s;for(p=a,s=a; p-as B) *p*s C) apas D) p-ap-s(34) 以下程序的输出结果是main() char cf35=AAAA,BBB,CC;printf(%sn,ch1);A) AA
8、AA B) BBB C) BBBCC D) CC(35) 在C语言中,形参的缺省存储类是A)auto B)register C)static D)extern(36) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是A) p=2*(int*)malloc(sizeof(int);B) p=(int*)malloc(2*sizeof(int);C) p=(int*)malloc(2*2);D) p=(int*)calloc(2,sizeof(int);(37) 以下程序的输出结果是main() char x=040; printf(%0n,x1);A) 100 B) 80
9、 C) 64 D) 32(38) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是A)fopen(A:userabc.txt,r) B)fopen(A:userabc.txt,r+)C)fopen(A:userabc.txt,rb) D)fopen(A:userabc.txt,w)(39) 以下不能正确进行字符串赋初值的语句是A) char str5=good!; B) char str=good!;C) char *str=good!; D) char str5=g,o,o,d;(40) 若有下面的说明和定义:struct test int
10、 ml; char m2; float m3;union uu char ul5; int u22; ua; myaa;则sizeof(struct test )的值是A) 12 B) 16 C) 14 D) 9(41) 若有定义:int aa 8;。则以下表达式中不能代表数组元aa1的地址的是A)&aa0+1 B)&aa1 C)&aa0+ D)aa+1(42) 以下程序的输出结果是f(int b,int m,int n) int i,s=0;for(i=m;in;i=i+2) s=s+bi;return s;main() int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7
11、);printf(%dn,x);A) 10 B) 18 C) 8 D) 15(43) 若有以下定义和语句:int s45,(*ps)5; ps=s;则对s数组元素的正确引用形式是A)ps+1 B)*(ps+3) C)ps02 D)*(ps+1)+3(44) 以下程序的输出结果是main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+) t=t+bibjj;printf(%dn,t); A) 3 B) 4 C) 1 D) 9(45) 以下程序的输出结果是#include main() char b18=abcd
12、efg,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pb);printf(%dn,strlen(b2);A) 8 B) 3 C) 1 D) 7(46) 在说明语句:int *f();中,标识符f代表的是A) 一个用于指向整型数据的指针变量B) 一个用于指向一维数组的行指针C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名(47) 不合法的main函数命令行参数表示形式是A) main(int a,char *c) B) main(int arc,char *arv)C) main(int argc,char *argv) D) main(int a
13、rgv,char *argc)(48) 以下程序的输出的结果是int x=3;main() int i; for (i=1;inext=&c; q-next=p-next; D) (*p).next=q; (*q).next=&b;(50) 设有以下说明语句typedef struct int n;char ch8;PER;则下面叙述中正确的是A) PER 是结构体变量名 B) PER是结构体类型名C) typedef struct 是结构体类型 D) struct 是结构体类型名二、填空题(6) 若从键盘输入58,则以下程序输出的结果是 _ 。main() int a;scanf(%d,&a
14、);if(a50) printf(%d,a);if(a40) printf(%d,a);if(a30) printf(%d,a);(7) 以下程序的输出结果是_ 。main() int a=177;printf(%on,a);(8) 以下程序的输出结果是_ 。 main() int a=0; a+=(a=8);printf(%dn,a); (9) 以下程序输出的结果是_ 。main() int a=5,b=4,c=3,d;d=(abc); printf(%dn,d);(10) 以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将
15、定义补充完整。struct node int info; _ link;(11) 以下程序的输出结果是_ 。main() int s,i; for(s=0,i=1;i3;i+,s+=i); printf(%dn,s);(12) 以下程序的输出结果是_ 。main() char *p=abcdefgh,*r; long *q; q=(long*)p; q+; r=(char*)q; printf(%sn,r);(13) 以下程序的输出结果是_ 。main() char s=abcdef; s3=0; printf(%sn,s);(14) 以下程序的输出结果是_ 。main() int x=0;s
16、ub(&x,8,1);printf(%dn,x);sub(int *a,int n,int k) if(k=n) sub(a,n/2,2*k);*a+=k;(15) 设有如下宏定义#define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通过宏调用实现变量a、b内容交换,请填空。float a=5,b=16,c;MYSWAP( _ ,a,b);(16) 以下程序用来统计文件中字符个数。请填空。 #include stdio.h main() FILE *fp; long num=0L; if(fp=fopen(fname.dat,r)=NULL) pirntf(Open
17、 errorn); exit(0); while( _ ) fgetc(fp); num+; printf(num=%1dn,num-1); fclose(fp); (17) 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#define N 3#define M 3 select(int aNM,int *n) int i,j,row=1,colum=1;for(i=0;iN;i+)for(j=0;jarowcolum) row=i;colum=j;*n= _;return _; main() int aNM=9,11,23,6,1,15,9,17,20,max,n; max=select(a,&n); printf(max=%d,line=%dn,max,n); (18) mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str) int i;for(i=0; _!=0;i+);return(_);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1