


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模拟试卷1第一部分:基础知识(20题,共40分)1. 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为 B 。A) 1.4 B) 1 C) 2.0 D) 22. 若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是 D 。A)a的值是字符C B) a的值是浮点型C)不允许字符型和浮点型相加 D) a的值是字符A的ASCII值加上1。3. 不合法的main函数命令行参数表示形式是 C 。A) main(int a,char *c) B) main(int arc,char *arv)C) main(int argc,char *argv) D) main(int argv,char *argc)4. 以下选项中不属于C语言的类型的是 D 。A) signed short int B) unsigned long intC) unsigned int D) long short5. 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A 。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);6. 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是 D 。A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;(长整数常量后面要加L。 没有加L,则默认为int类型,在16位系统下,int是16位的,占2个字节,有效范围是-32768到+32767,A、B、C的选项都会超出这个范围)7. 以下叙述正确的是 B 。A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(标识符是指常量、 变量、语句标号以及用户自定义函数的名称)8. 若定义:int a=511,*b=&a;, 则printf(%dn,*b);的输出结果为 D 。A) 无确定值 B) a的地址 C) 512 D) 5119. 以下程序的输出结果是 C 。A) 5B) 4 C) 6 D) 不确定main() int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b);10. 以下程序中,while循环的循环次数是 D 。main()int i=0;while(i10) if(iname chouB、(*P)-name+2 hC、 *P-name+2 eD、 *(P-name+2) O14. 若有以下程序#include void f(int n);main() void f(int n); f(5);void f(int n) printf(%dn,n); 则以下叙述中不正确的是 C 。A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D) 函数f无返回值,所以可用void将其类型定义为无值型15. 若有以下定义和语句:int s45,(*ps)5; ps=s;则对s数组元素的正确引用形式是 C 。A) ps+1 B) *(ps+3) C) ps02 D) *(ps+1)+316. 在C语言中,形参的缺省存储类是 A 。(定义的变量默认是auto类型)A) auto B) register C) static D) extern17. 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是 A 。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);18. 在说明语句:int* f();中,标识符f代表的是 D 。A) 一个用于指向整型数据的指针变量B) 一个用于指向一维数组的行指针C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名19. 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是 B 。(复习fopen)A)fopen(A:userabc.txt,r) B)fopen(A:userabc.txt,r+)C)fopen(A:userabc.txt,rb) D)fopen(A:userabc.txt,w)20. 以下不能正确进行字符串赋初值的语句是 D 。A)char str5=good!; B) char str=good!;C)char *str=good!; D) char str5=g,o,o,d;21. 若有下面的说明和定义:(sizeof “对齐”处理, union取最大变量,struct成员字节数相加)struct test int ml;(2) char m2;(1) float m3;(4)union uu char ul5; int u22; ua;(5) myaa;则sizeof(struct test)的值是 A 。A) 12B) 16C) 14D) 9(13)22. 若有定义:int aa 8;。则以下表达式中不能代表数组元aa1的地址的是 C 。A) &aa0+1 B) &aa1 C) &aa0+ D) aa+1第二部分:简单程序(12题,共30分)23. 以下程序的输出结果是 A 。A) 1 B) 0 C) 非0的数 D) -1main() int a=4,b=5,c=0,d;d=!a&!b|!c; (& | 判断返回0或者1)printf(%dn,d); 24. 以下程序的输出结果是 B 。A) 3B) 4C) 1D) 9main() 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);0 1 2 t=00 1 2 t=20 1 2 t=425. 以下程序的输出结果是 D 。A) 8 B) 3C) 1 D) 7#include #include main() char b18=abcdefg,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pb); /循环3次,最后一次把“abcdefg”拷给b2。printf(%dn,strlen(b2);26. 以下程序的输出结果是 A 。A) 10 B) 18 C) 8 D) 15f(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);printf(%dn,x);27. 以下程序的输出结果是 B 。A) AAAA B) BBBC) BBBCC D) CCmain() char ch35=AAAA,BBB,CC;printf(%sn,ch1);它表示一个3行5列二维数组。第一行的数据是AAAA0第二行的数据是BBB00。第三行的数据是CC00028. 以下程序的输出结果是 A 。A) 31B) 13C) 10D) 20main() 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);(没有break语句,case不会中断)17. 以下程序的输出结果是( B ) A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8 main( ) char *s=12134211; int v4=0,0,0,0,k,i; for(k=0;sk;k+) switch(sk) case 1:i=0; case 2:i=1; case 3:i=2; case 4:i=3; vi+; for(k=0;k4;k+) printf(%d ,vk); 29. 以下程序的输出结果是 B 。A) 21 B) 32 C) 33 D) 11#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=defdefC) abcaABCDEFdef D) abcabcdefdef31. 以下程序的输出结果是 D 。A) 20B) 24C) 25D) 15int f() static 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);s=1 i=1 a=1s=1+1 i=2 a=1+2s=1+2 i=3a=3+3s=1+3 i=4a=6+4s=1+4 i=5a=10+532. 以下程序的输出结果是 D 。A) 4B) 5C) 6D) 0union myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf(“%dn”,a.u.x);(这个是结构体和共用体的嵌套,共用体中套着结构体。对于a这个共用体变量,它的域要么为a.u要么为.k这两个是不同时存在的,因为他们共用一个存储空间(虽然空间大小不同)。共用体的域是并行的关系。对于a.u这个结构体来说,它有3个域,分别是a.u.x、 a.u.y和 a.u.z。他们是串行的关系,彼此互不影响。故这个题目在输出的时候前面虽然给a.u的各个域都给了值,但是后面有给a.k赋值,就会把前面的覆盖掉。最后x的会变成0。当然因为a的这两个域的大小不同,所以a.k只覆盖了a.u.x,而a.u.y和a.u.z还是有值的)33. 下列程序执行后的输出结果是 C 。A) hello B) hel C) hlo D) hlm void func1(int i); void func2(int i); char st=hello,friend!; void func1(int i) printf(%c,sti); h o if(i3)i+=2;func2(i); i=2 void func2(int i) printf(%c,sti); l if(i3)i+=2;func1(i); i=4 main() int i=0; func1(i); printf(n); 34. 下列程序执行后的输出结果是 C 。A)14B) 15C)1 6D) 13#include int a=0,1,2,3,4,5,6,7,8,9;float f(int n) if(n=1) return a0; elsereturn(float)(n*f(n-1)+an)/n+1); 1/10 main() int n=9;printf(“f(%d)=%fn”,n+1,f(n); 模拟试卷2第一部分:基础知识(20题,共40分)1. 以下叙述中正确的是 B 。A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译2. 以下选项中不正确的实型常量是 C 。A) 2.6E-1 B) 0.8324e C) -78.8745D) 456e-2(在C语言中可以用两种形式表示一个实型常量, 小数形式表示的实型常量必须要有小数点, C语言语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。如e3、5e3.6、.e、e等都是非法的指数形式。注意:在字母e或E的前后以及数字之间不得插入空格 )3. 若以下选项中的变量x1、x2、x3、x4已正确定义,则正确的赋值语句是 C 。A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;4. 有定义语句:int x, y;,若变量x得到数值11,变量y得到数值12,下面四组输入要通过scanf(%d,%d,&x,&y);语句使变量x得到数形式中,错误的是 D 。A)11 12 B)11, 12C)11,12 D)11, 125. 设有以下定义int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是 D 。A)a+; B)b+ C)c+; D)d+;6. 有以下程序main( )int x=102,y=012; y是八进制数printf(%2d,%2dn,x,y); 执行后输出结果是 C 。A)10,01 B)002,12 C)102,10 D)02,107. 设有如下程序段:int x=2002, y=2003;printf(%dn,(x,y);则以下叙述中正确的是 D 。A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为2003 /逗号表达式(逗号表达式的要领:(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。(3) 逗号运算符的优先级别在所有运算符中最低)8. 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是(A)A)scanf(%d,pa); B)scanf(%d,&a);C)scanf(%d,&pa); D)scanf(%d,*pa);9. 以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是 A 。A)if(ab)&(bc) k=1; B) if(ab)|(bc) k=1else k=0; else k=0;C)if(ab) k=1;else if(bc) k=1; else k=0;10. 有以下程序main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(%dn,s); 程序执行后的输出结果是 D 。A)自然数19的累加和 B)自然数110的累加和C)自然数19中的奇数之和 D)自然数110中的偶数之和11. 若程序中定义了以下函数 double myadd(double a,double b) return (a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 A 。A)double myadd(double a,b); B)double myadd(double,double);C)double myadd(double b,double a); D)double myadd(double x,double y);12. 有以下函数定义:void fun(int n, double x) 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 C 。A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);13. 有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是 D 。A)5 B)6 C)8 D)914. 有以下程序main( ) char a=abcdefg,b10=abcdefg; printf(%d %dn,sizeof(a),sizeof(b);(尾巴有0) 执行后输出结果是 C 。A)7 7 B)8 8 C)8 10 D)10 1015. 有以下定义#include char a10,*b=a;不能给数组a输入字符串的语句是 B 。A)gets(a) B)gets(a0) C)gets(&a0); D)gets(b);16. 下列选项中正确的语句组是 D A)char s8; s=Beijing; B)char *s; s=Beijing;C)char s8; s=Beijing; D)char *s; s=Beijing;17. 有以下程序main( ) unsigned char a,b; a=4|3; b=4&3; printf(%d %dn,a,b) ;执行后输出结果是 A 。A) 7 0 B0 7 C)1 1 D)43 0| & 是按位运算 4|3= 0000 0100|0000 0011=0000 0111 =74&3=0000 0100&0000 0011 =0000 0000=018. 若有定义:int *p3;,则以下叙述中正确的是 B 。A)定义了一个基类型为int的指针变量p,该变量具有三个指针B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C)定义了一个名为*p的整型数组,该数组含有三个int类型元素D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素19. 下列关于C语言数据文件的叙述中正确的是 D 。A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件第二部分:简单程序(12题,共30分)20. 以下程序的输出结果是 C 。A0,0 B)0,1 C)1,0 D)1,1main() int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=a); printf(%d,%dn,k,m);) 21. 以下程序的输出结果是 D 。A)n=5 B)n=2 C)n=3 D) n=4main( ) int i,n=0; for(i=2;i5;i+) do if(i%3) continue; n+;/6 while(!i);/7 n+;/8 printf(n=%dn,n); i=2,执行 continue跳出do while循环,执行第8行操作n=1;i=3,if条件不成立,执行第6行n+,n=2,再执行第8行操作n=3;i=4,执行 continue跳出do while循环,执行第8行操作n=4;i=5结束for循环,结果输出422. 以下程序的输出结果是 D 。A)函数调用出错 B)8 C)9 D7char fun(char x , char y) if(x=0;i-) sum(&aai); printf(%dn,aa0);2. 以下程序的输出结果是 C 。A) 0 B) 29C) 31D) 无定值fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(“%d”,a); 28. 以下程序的输出结果是 C 。A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2,void sort(int a,int n) int i,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(aa,10);for(i=0;i10;i+) printf(%d,aai);printf(n); 2. 下列程序void inv(int *x,int n)int p,t,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;ip;i+,j- -)t=*i;*i=*j;*j=t;return;main( ) static int i, a10=3,7,9,11,0,6,7,5,4,2;inv(a,10);for(i=0;i10;i+) printf(%d,ai);程序运行的结果: D A、0,2,3,4,5,6,7,7,9,11 B、11,9,7,7,6,5,4,3,2,0C、3,7,9,11,0,6,7,5,4,2 D、2,4,5,7,0,6,11,9,7,329. 以下程序的输出结果是 C 。A)550 550 B)680 680 C)580550 D)580 680struct STU char name10; int num; int Score;main( ) struct STU s5=YangSan,20041,703,LiSiGuo,20042,580,wangYin,20043,680,SunDan,20044,550,Penghua,20045,537,*p5,*t; int i,j; for(i=0;i5;i+) pi=&si; for(i=0;i4;i+)for(j=i+1;jScorepj-Score) t=pi;pi=pj;pj=t; printf(%5d %dn,s1.Score,p1-Score); 30. 有以下程序#include main(int argc ,char *argv ) int i,len=0; for(i=1;iargc;i+=2) len+=strlen(argvi); printf(%5dn,len);经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出结果是 D 。A)14 B)12 C)8 D)6len+=strlen(argv1)+strlen(argv3) argv1=abcd argv3=h325. 假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good后,程序的输出结果是 B A) hello good B) hg C) hel D) hellogoodmain()(int argc, char *argv) int i;for(i=1;iargc;i+) printf(%c, *argvi);31. 下列程序执行后的输出结果是 B 。A)3 B)4 C)5 D)6#include struct NODE int num; struct NODE *next; ;main( ) struct NODE *p,*q,*r; int sum=0; p=(struct NODE *)malloc(sizeof(struct NODE); q=(struct NODE *)malloc(sizeof(struct NODE); r=(struct NODE *)malloc(sizeof(struct NODE); p-num=1;q-num=2;r-num=3; p-next=q;q-next=r;r-next=NULL; sum+=q-next-num;sum+=p-num; printf(%dn,sum); 链表问题,在内存中开辟了3个空间,分别把地址放在指针变量p,q,r中分别对结构体元素赋值p-num=1;q-num=2;r-num=3;当程序执行到sum+=q-next-num;相当与sum=sum+(q-next-num)即sum=0+3的时候,因为sum开始初始为0,所以执行上面语句后sum的值变成3了sum+=p-num; 相当与sum=sum+(p-m),即sum=3+1模拟试卷3第一卷1-6与模拟题1重复第一部分:基础知识(20题,共40分)1. 略。2. 略。 3. 以下程序段的输出结果是 C int a=1234;printf(%2dn,a);A) 12 B) 34 C) 1234 D) 提示出错、无结果4. 略。5.略。6.略。7. 有以下程序段,while 循环执行的次数是 A A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次int k=0while(k=1) /赋值语句k+;8. 以下所列的C语言常量中,错误的是 B A) 0xFF B) 1.2e0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨铁路桥专项施工组织设计
- 土石方作业过程环境保护措施
- 知识产权质押融资担保服务协议(环保技术)
- 离婚补充协议孩子抚养费及赡养费支付安排文本
- 高性能空气源热泵销售及屋顶安装工程合同
- 离婚协议范本参考:夫妻财产分割及子女抚养执行书
- 液化空气储能空分项目投资分析与资金筹措方案
- 离婚协议范本:男方出轨财产分割与子女抚养权协议书
- 南宁市安全员考及答案1
- 液化空气储能空分系统动态调度与优化方案
- 钢结构厂房基础施工承包合同
- 江苏连云港历年中考作文题与审题指导(2003-2024)
- 劳务分包加采购合同标准文本
- 带状疱疹护理课件
- 呼吸功能障碍的支持
- 气体充装安全培训课件
- 玻璃隔断制作安装合同
- 小学生防控近视课件
- 智能计算系统:从深度学习到大模型 第2版课件 第五章-编程框架原理
- 肛管直肠超声检查中国专家共识(2024版)解读
- 【MOOC】理解马克思-南京大学 中国大学慕课MOOC答案
评论
0/150
提交评论