1、Z,TXT D) ?.?(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) unsign
2、ed 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(b,&d);C) scanf(,a,b,d); D) scanf(,a,b,*d);(21) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;(22) 以下叙述正确的是A) 可以
3、把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;,d=ab?(ac?a:c):(b);A) 5 B) 4 C) 6 D) 不确定(25) 以下程序中,while循环的循环次数是 int i=
4、0;while(i10) if(i1) continue;if(I=5) break; i+;.A) 1 B) 10C) 6 D) 死循环,不能确定次数(26) 以下程序的输出结果是 int a=0,i;for(i=;i5;i+) switch(i) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;A) 31 B) 13 C) 10 D) 20(27) 以下程序的输出结果是 int a=4,b=5,c=0,d;d=!a&!b|!c;,d); A) 1 B) 0 C) 非0的数 D) -1(28) 以下程序的输出结果是#include int
5、 i=0,a=0;20) for(;) if(i%10)=0) break;else i-;i+=11; a+=i;printh( A) 21 B) 32 C) 33 D) 11(29) 以下程序的输出结果是char cchar(char ch)if(ch=A&ch=Z) ch=ch-A+areturn ch; char s=ABC+abc=defDEF,*p=s;while(*p) *p=cchar(*p);p+;%sn,s);A) abc+ABC=DEFdef B) abc+abc=defdefC) abcaABCDEFdef D) abcabcdefdef(30) 以下程序的输出结果是i
6、nt f() static int i=0;int s=1;s+=i;return s; main() int i,a=0;for(i=0;i+) a+=f();A) 20 B) 24 C) 25 D) 15(31) 以下程序段的输出结果是char s=141141abctprintf (,strlen(s);A) 9 B) 12 C) 13 D) 14(32) 若有以下程序void f(int n); void f(int n); f(5);void f(int n) printf(,n); 则以下叙述中不正确的是A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB) 若在
7、主函数前对函数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) 以下程序的输出结果是 char cf35=AAAA,BBBCC;%sn,ch1);A) B) C) BBBCC D) (35) 在C语言中,形参的缺省存储类是A) auto B) r
8、egister 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) 以下程序的输出结果是 char x=040; printf(%0n,x1);A) 100 B) 80 C) 64 D) 32(38) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合
9、此要求的函数调用是A) fopen(A:userabc.txtr) B) fopen(userabc.txtr+C) fopen(rb) C) fopen(w(39) 以下不能正确进行字符串赋初值的语句是A) char str5=good! B) char str=C) char *str= D) char str5=g,o,d(40) 若有下面的说明和定义:struct test int ml; char m2; float m3;union uu char ul5; int u22; ua; myaa;则sizeof(struct test )的值是A) 12 B) 16 C) 14 D)
10、 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;i=i+2) s=s+bi;int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);,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(4
11、4) 以下程序的输出结果是 int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;3; for(j=i;jmain() char b18=abcdefg,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pb);,strlen(b2);A) 8 B) 3 C) 1 D) 7(46) 在说明语句:int *f();中,标识符f代表的是A) 一个用于指向整型数据的指针变量B) 一个用于指向一维数组的行指针C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名(47) 不合法的main函数命令行参数表示形式是A) main(int
12、a,char *c) B) main(int arc,char *arv)C) main(int argc,char *argv) D) main(int argv,char *argc)(48) 以下程序的输出的结果是int x=3; int i;for (i=1;x;i+) incre();ncre() staic int x=1;x*=x+1; %dA) 3 3 B) 2 2 C) 2 6 D) 2 5(49) 若以下定义:struct link int data;struck link *next;a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:a bdata nex
13、t data next 5 9 0 pcdata next 7 q指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:A) a.next=c; c.next=b; B) p.next=q; q.next=p.next;C) p-next=& 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) struc
14、t 是结构体类型名二、填空题(每空2分,共40分)请将每一个空的正确答案写在答案卡上,答在试卷上不得分。(1) 为了要将当前盘目录中的可执行程序ABC.EXE的输出结果存放到当前盘当前目录中的文件OUT.TXT中,则应使用的DOS命令为【1】 。(2) 计算机网络分为广域网和局域网,因特网属于【2】 。(3) 要想在当前目录下方便地执行C盘UCDOS目录中的程序,就应该先执行预设搜索路径的命令,该DOS命令为【3】 。(4) 要查看当前目录中扩展名为.DAT的所有文件目录,应该使用的DOS 命令为【4】 。(5) 在Windows环境下,当进行复制操作时,其复制的内容将存放在【5】中 (6)
15、若从键盘输入58,则以下程序输出的结果是 【6】 。 int a;scanf(%da);if(a50) printf(40) printf(30) printf(7) 以下程序的输出结果是【7】 。 int a=177;%on(8) 以下程序的输出结果是【8】 。 int a=0a+=(a=8);(9) 以下程序输出的结果是【9】 。 int a=5,b=4,c=3,d;d=(abc);(10) 以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。struct node int info; 【10】 link;(1
16、1) 以下程序的输出结果是【11】 。 int s,i; for(s=0,i=1;i+,s+=i);(12) 以下程序的输出结果是【12】 。 char *p=abcdefgh,*r; long *q; q=(long*)p; q+; r=(char*)q;,r);(13) 以下程序的输出结果是【13】 。abcdef s3=0(14) 以下程序的输出结果是【14】 。 int x=0;sub(&x,8,1);sub(int *a,int n,int k) if(karowcolum)row=i;colum=j;*n= 【17】;return 【18】; int aNM=9,11,23,6,1
17、,15,9,17,20,max,n; max=select(a,&n);max=%d,line=%dn,max,n);(18) mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。int mystrlen(char *str) 【19】!=0i+);return(【20】);基础部分和C语言程序设计试题参考答案及评分标准一、选择题(-(40)题每题1分,(41)-(50)题每题2分,其60分)(1) D(2) B(3) A(4) A(5) B(6) C(7) B(8) B(9) C(10) C(11) D(12) D(13) C(14) A(15) B(16) B(17)
18、 D(18) C(19) D(20) A(21) D(22) B(23) D(24) C(25) D(26) A(27) A(28) B(29) B(30) D(31) A(32) C(33) B(34) B(35) A(36) A(37) A(38) B(39) A(40) A(41) C(42) A(43) C(44) B(45) D(46) D(47) C(48) C(49) C(50) B二、填空题答案(每空2分,共40分)(1) 【1】 ABC OUT.TXT 或者 ABC.EXEOUT.TXT(2) 【2】 广域网(3) 【3】 PATH C:UCDOS 或其它等效命令(4) 【4】 DIR *.DAT 或 DIR *.DAT/P 或 DIR *.DAT/W 或带其它参数也可(5) 【5】 剪贴板(6) 【6】 585858(7) 【7】 261(8) 【8】 16(9) 【9】 0(10) 【10】 struct node *(11) 【11】 5(12) 【12】 efgh(13) 【13】 abc(14) 【14】 7(15) 【15】 c(16) 【16】 !feof(fp)(17) 【17】 row(18) 【18】 arowcolum(19) 【19】 *(str+i)stri(20) 【20】 i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1