C语言模拟试题.doc_第1页
C语言模拟试题.doc_第2页
C语言模拟试题.doc_第3页
C语言模拟试题.doc_第4页
C语言模拟试题.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_(1)一:选择题(本题共 15 小题,满分 30 分)(1).以下叙述正确的是BA)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x)C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(2)以下C语言用户标识符中,不合法的是DA)_1B)AaBcC)a_bD)ab (3)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是CA)a=a+,i+;B)i=(a+k)=(i+k);C)i=a%11;D)i=!a;(4)以下程序的输出结果是(B)。main() int x=2, y=-1, z=2; if (xy) if (y0) z=0; else z=z+1; printf(“%dn”, z);A) 3 B) 2 C) 1 D) 0(5).设int a=9,b=20;则printf(%d,%dn,a-,-b);的输出结果是(C ) A.9,19 B.9,20 C.10,19 D.10,20(6)有以下程序#include stdio.hmain()int i,j,m=1;for(i=1;i0;j-)if(i*j)3)break;m*=i*j;printf(m=%dn,m);程序运行后的输出结果是AA)m=6B)m=2C)m=4D)m=5(7)有以下程序D#include stdio.hmain()int a=1;int b=2;for(;a8;a+) b+=a;a+=2;printf(%d,%dn,a,b);程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(8)以下关于return语句的叙述中正确的是bA)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(9)下列选项中,能正确定义数组的语句是DA)int num0.2008;B)int num;C)int N=2008;int numN;D)#define N 2008int numN;(10).有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p,b;p=&a3;b=p5;b中的值是(D)A. 5B. 6C. 8D. 9(11)有以下程序#includestdio.hmain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+) s=s+abi;printf(%dn, s);程序运行后的输出结果是cA)6B)10C)11D)15(12)有以下程序#include stdio.h#define SUB(a) (a)-(a)main() int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(%dn,d);程序运行后的输出结果是CA)0B)-12C)-20D)10(13)有以下程序#include stdio.hmain() int a=2,b=2,c=2;printf(%dn,a/b&c);程序运行后的输出结果是aA)0B)1C)2D)3(14)下面程序段的运行结果是(A) #include main() int a=1;int b=2;int c=2;int t;while(abc) t= a;a= b; b=t; c-;printf(%d,%d,%d,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1 (15)有以下程序 #include stdio.h main() intc=0,k; for(k=1;k3;k+) switch(k) default:c+=k; case2:c+;break; case4:c+=2;break; printf(%dn,c); 程序运行后的输出结果是 AA)3 B)5 C)7 D)9二 填空题(本题共 4小题,满分 20分)1.(4分)以下程序运行结果是: X=8 #includemain()int i,j,X=0;for(i=0;i2;i+)X+;for(j=0;j3;j+)if(j%2) continue;X+;X+;printf(X=%dn,X);2.(4分)以下程序运行结果是: x = 100123#include void fun1(int x) x=20;void fun2(int b4) int j; for(j=0; j4; j+) bj=j; main() int x = 10; int a4 = 1,2,3,4, k; fun1(x); printf(x = %dn, x); fun2(a); for(k=0; k4; k+) printf(%dn, ak); 3.(4分)以下程序运行时输入:123456789 则程序运行结果是:66#include main() int x, y;scanf(%2d%*4s%2d, &x, &y);printf(%d, y-x);4.(8分)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。#includeint main()int i,j,n;char ch=A;scanf(%d,&n);if(n11)for(i=1;i=n;i+)for(j=1;j=n-i+1;j+)printf(%2c,ch);ch+;printf(n);else printf(n is too large!n);printf(n);return 0; 三:判断题(本题共 10 小题,满分 20分)1. break是结束本次循环,而continue是结束所有的循环2.在C语言中,变量不区分大小写3不同的函数中可以使用相同的变量名。()4形式参数是局部变量。( )5若用数组名作为函数的实参,传递给形参的是数组第一个元素的值。( )6. c语言是低级语言7. c语言中,每个函数都必须要有一个且只有一个main函数8. C语言中,整形常数表示的方法有3种9. 对于开辟一个静态变量,我们没有必要对它进行初始化10.假定x和y为double型,则表达式x=2,y=x+3/2的值是3四(本题共 2小题,满分 30 分)编程题1. 规定一个工人工作时间每个月160小时,每小时工资为5元,如果加班的话,每小时增加4元,请编程计算并打印此工人一个月的工资,要求由键盘输入工作时间(14分)。参考答案:/2分 包括标识符命名、缩进等代码风格#include main()int t,salary; /2分printf(Please input the time:n);scanf(%d,&t); /2分 if(t 744) /1分一个月超过31天每天24小时,考虑到最大最小范围判断,而且合理即可printf(Error, The time you entered is beyond scope!n);return;if(t=160)/2分 if else结构正确salary=t*5;/2分elsesalary=160*5+(t-160)*9; /2分printf(The salary is:%dn,salary); /2分2. 输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对20名学生成绩按从高到低进行排序。/ 缩进、空格、空行、标识符命名等编程规范 2分#include main()int i,k=0,j; /2分 类型错扣1分,没初始化扣1分float ave,a20,t,sum=0; printf(请输入20个学生成绩n);for(i=0;i20;i+) scanf(%f,&ai); /1分 sum=sum+ai;/1分ave=sum/20;/1分for(i=0;iave) k+; printf(平均分是%.1f,高于平均分有%d人n,ave,k); /1分输出显示正确for(i=0;i18;i+)/2分双重循环for(j=0;j18-i;j+) if(aj-1aj)t=aj-1;aj-1=aj;aj=t; /2分 printf(成绩降序排列为:n);for(i=0;i20;i+) printf(%.1ft,ai); /1分 输出显示正确(2)一、选择(本题共15小题,满分30分)。1、关于c表达式 5|(a=b+c)=3的值,正确的说法为 A)值为1 B)值为5 C)值为0 D)仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。(A正确)2 以下能正确定义一维数组的选项是A)int a5=0,1,2,3,4,5; B)char a=0,1,2,3,4,5; C)char a=A,B,C;D)int a5=0123;(B正确)3. 有以下语句:int b;char c10;则正确的输入c数组的语句是A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c); C)scanf(%d%s,b,c);D)scanf(%d%s,b,&c);(B正确)4若变量c为char类型,能正确判断出c为小写字母的表达式是A) a=c= a)|(c= z)C)(a=c)D)(c= a)&(c= z) (D正确)5凡是在函数中未指定存储类别的变量,其隐含的存储类别是A)自动 B)静态C)外部 D)寄存器(A正确)6若要求从键盘读入含有空格字符的字符串,应使用函数A)gets() B)scanf() C)getchar()D)getch()(A正确)7若有定义:int aa8;则以下表达式中不能代表数组元素aa1的地址的是A)&aa0+1 B)&aa1C)&aa0+ D) aa+1(C正确)8若有以下的定义:int t32;则 t数组最后一个元素是A) &t32B) t32C) t2D) t21 (D正确)9若有定义:int x,*pb;以下正确的赋值表达式是A)pb =&x B)pb =x C)*pb =&xD)*pb =*x(A正确)10、若c,c1,c2均为字符型变量,下列语句执行后。c=a;c1=+c;c2=c+;c1,c2的值分别为 A)c1=b,c2=c B)c1=a, c2=c C)c1=b,c2=b D)c1=a,c2=b(结果为 C)11.有如下语句int x,y;scanf(%d,%d,&x,&y);若使变量x得到数值11,变量y得到 数值12,下面四组输入形式中,正确的是A)11 12 B)11 12C)11,12D)11,12 (D正确)12、有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(c5,6&5,6|5,65); 输出运行结果是 A)1,1,1,1 B)0,1,1,0 C)1,0,1,0 D)1,1,1,0 (D正确)二、判断(本题共10小题,满分20分)。 1、char nn4=abc,2; 2、在C语言中,如果想表示反斜杠符时要用到两个反斜杠。 3、判断字符串str1是否与字符串str2相等,应使用 if(str1,str2)=0)。 4、设有数组定义: char array =China; 则数组 array实际所占的空间为5个字节。5、可以对整型数组进行整体输入、输出。 6、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式 7、用户定义的标识符中,大小写字母代表相同标识。 8、用数组名作为函数实参,其本质是通过实参数组名把实参数组的首地址传送给形参数组名;这样,两个数组共同占用一段内存空间。 9、在作用域内,全局变量和局部变量有重名现象。若重名,则全局变量将被屏蔽而不起作用. 10、gets()、puts()一次只能输入、输出一个字符串;scanf()、printf()可以输入、输出几个字符串。三、填空(本题共5小题,满分20分)。 1、下列程序的运行结果是_#include int main(void)int n=0;while (n+=1)printf(“%dt”,n);printf(“%dn”,n);return 0;答案: 1 2 32、下列程序的运行结果是_#include int m=13;int fun(int x, int y) int m=3; return(x*y-m); int main(void)int a=7, b=5; printf(%dn, fun(a,b)/m);答案:23、下列程序的运行结果是_#include int main(void)int x,y,z;x=y=z=0;+x | +y & +z;printf(“x=%dty=%dtz=%dn”,x,y,z);x=y=z=-1;+x & +y | +z;printf(“x=%dty=%dtz=%dn”,x,y,z);return 0;答案:x=1 y=0 z=0 x=0 y=-1 z=04、运行程序时,输入how do you do? 程序输出结果是_#include int main(void )char s20, s120;scanf(%s, s);printf(%s n, s);scanf(%s%s, s , s1); printf(s=%s, sl=%s, s, s1);puts(n);gets(s);puts(s);答案: how do you do? how s=do, s1=you do?5、以下程序为求2个数中较大者。其中_;_。#include int main(void ) int max(int x, int y); int a, b, c; scanf(%d%d, &a, &b); c=_; printf(max=%dn, c); int max(int x, int y) int z; if(xy) z=x; else z=y; _; 答案:max(a, b);return(z);三、编程(本题共2小题,满分30分)。1、求1050之间被3整除的数及其和。#includeint main() int i,sum=0; for(i=10;i=50;i+) if(i%3=0) sum=sum+i; printf(%3d,i); printf(n10-50之间被3整除的数的和是%dn,sum);2、随机生成10个100200之间整数,采用数组的方法将数据按降序排列。#include#includeint main() int a10,i,j,t; for(i=0;i10;i+) ai=rand()%101+100; for(i=0;i=8;i+) for(j=0;j=8-i;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i10;i+) printf(%4d,ai); (3)一、本题共15小题,满分30分(每小题2分)。1、以下合法的赋值语句是BA) x=y=100 B) d-; C) x+y; D) c=int(a+B) ;2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是CA) INPUT x、y、z;B) scanf(“%d%d%d”,x,y,z);C) scanf(“%d%d%d”,&x,&y,&z);D) read(“%d%d%d”,&x,&y,&z);3、下面标识符中,不合法的用户标识符为 D 。A) Pkd B) k_90 C) _924 D) k#b4、下面不是字符串常量的是 A 。A) abc B) “1212” C) ”0” D) “ ”5、下面不属于C语言的数据类型是C。A) 整型 B) 实型 C) 逻辑型 D) 双精度实型6、若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 B 。A) 7 B) 2.50000 C) 3.500000 D) 0.00000 7、设有以下定义:#define g 2int a=0;double b=1.25;char q=A;则下面语句中错误的是 D 。A) a+; B) b+; C) q+; D) g+;8、设有程序段:int k=10;while(k= =0) k=k-1;则下面描述中正确的是 C 。A) while 循环执行10次 B) 循环是无限循环C) 循环语句一次也不执行 D) 循环体语句执行一次9、假定a和b为int型变量,则执行以下语句后b的值为Da=1; b=10;do b-=a;a+;while (b-3;j-) if(j%3)j- -; - -j; - -j; printf(%d ,j); A) 6 3 B) 7 4 C) 6 2 D) 7 311、以下只有在使用时才为该类型变量分配内存的存储类说明是BA) auto和staticB) auto和registerC) register和static D) extern和register12、有如下程序#include int func(int k,int q) return(k+q); void main( ) int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);该程序的输出的结果是DA) 12 B) 13 C) 14 D) 1513、在定义int a10;之后,对a的引用正确的是 C 。A) a10 B) a6.3 C) a10-10 D) a(6)14、为了判断两个字符串s1和s2是否相等,应当使用 D 。A) if (s1=s2)B) if (s1=s2)C) if (strcpy(s1,s2)D) if (strcmp(s1,s2)=0)15、若有如下定义语句:int a10=1,2,3,4,5,6,7,8,9,10;则对数组正确的引用是B。A) a10 B) aa4+4 C) aa9 D) aa35得分评卷人二、本题共10小题,满分20分(每小题2分)。 1、 C语句末尾必须有分号。2、 不同的函数中可以使用相同的变量名。3、 运算符“%”只能用于整数运算。4、 乘除运算符优先级高于加减运算符。5、 C语句前面必须有行号。6、 C程序中每行只能写一条语句。7、 C语言本身没有输入输出语句。8、 注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论