c语言模拟六.docx
- 文档编号:17033570
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:21
- 大小:19.26KB
c语言模拟六.docx
《c语言模拟六.docx》由会员分享,可在线阅读,更多相关《c语言模拟六.docx(21页珍藏版)》请在冰点文库上搜索。
c语言模拟六
试卷编号:
9154
所属语言:
C语言
试卷方案:
VC_20120521
试卷总分:
100分
共有题型:
5种
一、填空共10题(共计10分)
第1题(1.0分)题号:
293
getchar()函数只能接收一个【1】.
答案:
=======(答案1)=======
字符
第2题(1.0分)题号:
1188
设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的
二进制数是【1】.
答案:
=======(答案1)=======
11110000
第3题(1.0分)题号:
345
字符串比较的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strcmp
第4题(1.0分)题号:
307
当a=1,b=2,c=3时,执行以下程序段后c=【1】.
if(a>c)b=a;
a=c;
c=b;
答案:
=======(答案1)=======
2
第5题(1.0分)题号:
331
C程序在执行过程中,不检查数组下标是否【1】.
答案:
=======(答案1)=======
越界
第6题(1.0分)题号:
540
若有以下定义和语句:
inta[5]={1,3,5,7,9},*p;
p=&a[2];
则++(*p)的值是【1】.
答案:
=======(答案1)=======
6
第7题(1.0分)题号:
1533
有函数调用fun1(x+y,(y,z),10,fun((x,y-1)));函数fun1有【1】个参数.
答案:
=======(答案1)=======
4
第8题(1.0分)题号:
344
复制字符串的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strcpy
第9题(1.0分)题号:
1554
C语言中调用【1】函数来打开文件.
答案:
=======(答案1)=======
fopen
=========或=========
fopen()
第10题(1.0分)题号:
1531
若charw,intx,floaty,doublez;则表达式w*x+z-y的结果为【1】类型.
答案:
=======(答案1)=======
double
=========或=========
双精度
二、单项选择共20题(共计40分)
第1题(2.0分)题号:
110
C语言中,char类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
A
第2题(2.0分)题号:
573
C语言中运算对象必须是整型的运算符是()。
A:
%=
B:
/
C:
=
D:
〈=
答案:
A
第3题(2.0分)题号:
576
设以下变量均为int类型,则值不等于7的表达式是()。
A:
(x=y=6,x+y,x+1)
B:
(x=y=6,x+y,y+1)
C:
(x=6,x+1,y=6,x+y)
D:
(y=6,y+1,x=y,x+1)
答案:
C
第4题(2.0分)题号:
92
以下的选择中,正确的赋值语句是()。
A:
a=1,b=2
B:
j++
C:
a=b=5;
D:
y=int(x)
答案:
C
第5题(2.0分)题号:
621
printf函数中用到格式符%5s,其中数字5表示输出的字符串占用
5列,如果字符串长度大于5,则输出按方式()。
A:
从左起输出该字符串,右补空格
B:
按原字符长从左向右全部输出
C:
右对齐输出该字串,左补空格
D:
输出错误信息
答案:
B
第6题(2.0分)题号:
510
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A:
3
B:
2
C:
1
D:
0
答案:
C
第7题(2.0分)题号:
506
以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A:
无
B:
######
C:
#
D:
###
答案:
B
第8题(2.0分)题号:
615
C语言中while和do-while循环的主要区别是()。
A:
do-while的循环体至少无条件执行一次
B:
while的循环控制条件比do-while的循环控制条件更严格
C:
do-while允许从外部转到循环体内
D:
do-while的循环体不能是复合语句
答案:
A
第9题(2.0分)题号:
513
inta[10];合法的数组元素的最小下标值为()。
A:
10
B:
9
C:
1
D:
0
答案:
D
第10题(2.0分)题号:
636
若二维数组a有m列,则在a[i][j]前的元素个数为()。
A:
j*m+i
B:
i*m+j
C:
i*m+j-1
D:
i*m+j+1
答案:
B
第11题(2.0分)题号:
657
以下不能正确进行字符串赋初值的语句是()。
A:
charstr[5]="good!
";
B:
charstr[]="good!
";
C:
char*str="good!
";
D:
charstr[5]={'g','o','o','d',0};
答案:
A
第12题(2.0分)题号:
666
若调用一个函数,且此函数中没有return语句,则正确的说法是:
该函数()。
A:
没有返回值
B:
返回若干个系统默认值
C:
能返回一个用户所希望的值
D:
返回一个不确定的值
答案:
D
第13题(2.0分)题号:
176
数组名作为实参数传递给函数时,数组名被处理为()。
A:
该数组的长度
B:
该数组的元素个数
C:
该数组的首地址
D:
该数组中各元素的值
答案:
C
第14题(2.0分)题号:
659
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A:
自动(auto)
B:
静态(static)
C:
外部(extern)
D:
寄存器(register)
答案:
A
第15题(2.0分)题号:
694
以下叙述正确的是()。
A:
可以把define和if定义为用户标识符
B:
可以把define定义为用户标识符,但不能把if定义为用户标识符
C:
可以把if定义为用户标识符,但不能把define定义为用户标识符
D:
define和if都不能定义为用户标识符
答案:
B
第16题(2.0分)题号:
199
若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A:
非法,2
B:
&a[1][0],2
C:
&a[0][1],3
D:
a[0][0],4
答案:
B
第17题(2.0分)题号:
198
设有以下语句,若0 charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4]; intj; for(j=0;j<4;j++) strp[j]=str[j]; A: strp B: str[k] C: strp[k] D: *strp 答案: A 第18题(2.0分)题号: 541 若有inti=3,*p;p=&i;下列语句中输出结果为3的是()。 A: printf("%d",&p); B: printf("%d",*i); C: printf("%d",*p); D: printf("%d",p); 答案: C 第19题(2.0分)题号: 743 C语言结构体类型变量在程序执行期间()。 A: 所有成员一直驻留在内存中 B: 只有一个成员驻留在内存中 C: 部分成员驻留在内存中 D: 没有成员驻留在内存中 答案: A 第20题(2.0分)题号: 725 在执行fopen函数时,ferror函数的初值是()。 A: TRUE B: -1 C: 1 D: 0 答案: D 三、程序填空共2题(共计20分) 第1题(10.0分)题号: 435 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 找出数组中最大值和此元素的下标,数组元素的值由键盘 输入。 -------------------------------------------------------*/ #include voidmain() { inta[10],*p,*s,i; for(i=0;i<10;i++) /***********SPACE***********/ scanf("%d",【? 】); /***********SPACE***********/ for(p=a,s=a;【? 】<10;p++) /***********SPACE***********/ if(*p【? 】*s)s=p; /***********SPACE***********/ printf("max=%d,index=%d\n",【? 】,s-a); } 答案: =======(答案1)======= a+i =========或========= &a[i] =======(答案2)======= p-a =======(答案3)======= > =======(答案4)======= *s 第2题(10.0分)题号: 420 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 计算某日是当年的第几天。 -------------------------------------------------------*/ #include struct { intyear; intmonth; intday; }data;/*定义一个结构并声明对象为data*/ voidmain() { intdays; printf("请输入日期(年,月,日): "); scanf("%d,%d,%d",&data.year,&data.month,&data.day); switch(data.month) { case1: days=data.day; break; /***********SPACE***********/ case2: days=data.day+【? 】; break; case3: days=data.day+59; break; case4: days=data.day+90; break; /***********SPACE***********/ case5: days=data.day+【? 】; break; case6: days=data.day+151; break; case7: days=data.day+181; break; case8: days=data.day+212; break; case9: days=data.day+243; break; case10: days=data.day+273; break; case11: days=data.day+304; break; case12: days=data.day+334; break; } /***********SPACE***********/ if(data.year%4==0&&data.year%100! =0【? 】data.year%400==0) if(data.month>=3) /***********SPACE***********/ days=【? 】; printf("%d月%d日是%d年的第%d天.\n",data.month,data.day,data.year,days); } 答案: =======(答案1)======= 31 =======(答案2)======= 120 =======(答案3)======= || =======(答案4)======= days+1 =========或========= 1+days =========或========= ++days 四、程序改错共1题(共计10分) 第1题(10.0分)题号: 421 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 一个偶数总能表示为两个素数之和。 ------------------------------------------------------*/ #include #include main() { inta,b,c,d; /**********FOUND**********/ scanf("%d",a); for(b=3;b<=a/2;b+=2) { for(c=2;c<=sqrt(b);c++) if(b%c==0) break; if(c>sqrt(b)) /**********FOUND**********/ d=a+b; else break; for(c=2;c<=sqrt(d);c++) /**********FOUND**********/ if(d%c=0) break; if(c>sqrt(d)) printf("%d=%d+%d\n",a,b,d); } } 答案: =======(答案1)======= scanf("%d",&a); =======(答案2)======= d=a-b; =======(答案3)======= if(d%c==0) 五、程序设计共2题(共计20分) 第1题(10.0分)题号: 351 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 请编一个函数voidfun(inttt[M][N],intpp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。 二维 数组中的数已在主函数中赋予。 ------------------------------------------------*/ #include #include #defineM3 #defineN4 voidwwjt(); voidfun(inttt[M][N],intpp[N]) { /**********Program**********/ /**********End**********/ } main() { intt[M][N]={{22,45,56,30}, {19,33,45,38}, {20,22,66,40}}; intp[N],i,j,k; printf("Theoriginaldatais: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("\n"); wwjt(); } voidwwjt() { inti,j,array[3][4],p[4]; FILE*rf,*wf; rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<3;i++) for(j=0;j<4;j++) fscanf(rf,"%d",&array[i][j]); fun(array,p); for(j=0;j<4;j++) { fprintf(wf,"%7d",p[j]); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } 答案: ---------------------- inti,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j]>pp[j]) pp[j]=tt[i][j]; } ---------------------- 第2题(10.0分)题号: 401 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 若x、y为奇数,求x到y之间的奇数和;若x、y为偶 数,则求x到y之间的偶数和。 ------------------------------------------------*/ #include voidwwjt(); intfun(intx,inty) { /**********Program**********/ /**********End**********/ } main() { ints; s=fun(1,1999)-fun(2,1998); printf("s=%d\n",s); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn; inti[2]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(n=0;n<2;n++) { fscanf(IN,"%d",&i[n]); } o=fun(i[0],i[1]); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti,s=0; for(i=x;i<=y;i+=2) s=s+i; returns; ----------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟