下C语言程序设计A卷+答案.docx
- 文档编号:29830099
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:14
- 大小:22.76KB
下C语言程序设计A卷+答案.docx
《下C语言程序设计A卷+答案.docx》由会员分享,可在线阅读,更多相关《下C语言程序设计A卷+答案.docx(14页珍藏版)》请在冰豆网上搜索。
下C语言程序设计A卷+答案
考核课程名称:
C语言程序设计学时:
56
考核方式:
笔试开卷、笔试闭卷、口试、其它
卷面页数:
共10页考试时间:
_2012年1月11日_
注意:
所有答案全部做在答题纸上,做在试卷上无效!
考核内容:
一、单项选择(每题2分,共30分)
1.以下C语言标识符中,不合法的是。
A)_1B)AaBcC)a_bD)--a
2.以下选项中可以用作C程序合法浮点型常量的是。
A)1.1e0B)3.0e0.2C)e9D)9.12e
3.若有定义语句:
intx=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为。
A)1.9B)1C)2D)2.4
4.若有定义语句:
intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为。
A)0和1B)0和20C)10和1D)10和20
5.若有定义语句ints,i,j,n;,在以下循环语句中,不能正确计算自然数1-100中所有数之和的是。
A)for(s=0,i=1;i<=100;)s+=++i;
B)for(s=100,n=100;--n;)s+=n;
C)for(s=0,i=1,j=100;i<=j;i++,j--)s+=i+j;
D)for(s=0,i=0;i<=100;)s+=i++;
6.以下定义数组的语句中错误的是。
A)intnum[]={1,2,3,4,5,6};B)intnum[][3]={{1,2},3,4,5,6};
C)intnum[2][4]={{1,2},{3,4},{5,6}};D)intnum[][4]={1,2,3,4,5,6};
7.若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++)printf(“*****\n”);
下面关于语句执行情况的叙述中正确的是。
A)循环体执行两次B)循环体执行一次
C)循环体一次也不执行D)构成无限循环
中国地质大学(武汉)学生课程考核出题专用纸教务处制
订
试卷类别
[A]
使用班级
全校统考
使用学期
2011年秋
命题人签字
邓泽
陈晶
审题人签字
熊慕舟
赵丹
审定人签字
____________
8.设有定义:
inta=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是。
A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}
C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}
9.有以下函数(x和y均为指向字符串的指针)
intfun(char*x,char*y)
{intn=0;
while((*x==*y)&&*x!
=’\0’){x++;y++;n++;}
returnn;
}
函数的功能是。
A)查找x和y所指字符串中是否有’\0’
B)统计x和y所指字符串中最前面连续相同的有效字符的个数
C)将y所指字符串赋给x所指存储空间
D)统计x和y所指字符串中相同的字符个数
10.若有定义语句:
char*s1=”OK”,*s2=”ok”;,以下选项中,能够输出”OK”的语句是。
A)if(strcmp(s1,s2)==0)puts(s1);B)if(strcmp(s1,s2)!
=0)puts(s2);
C)if(strcmp(s1,s2)==1)puts(s1);D)if(strcmp(s1,s2)!
=0)puts(s1);
11.设有定义:
doublex[10],*p=x;,以下能给数组x下标为6的元素从键盘读入数据的正确语句是。
A)scanf(“%f”,&x[6]);B)scanf(“%lf”,*(x+6));
C)scanf(“%lf”,p+6);D)scanf(“%lf”,p[6]);
12.下列定义数组的语句中,正确的是。
A)intN=0;intx[N];B)intx[0…10];
C)#defineN10D)intx[];
intx[N];
13.以下选项中正确的语句组是。
A)chars[];s="BOOk!
";B)char*s;s={"BOOK!
"};
C)chars[10];s="BOOK!
";D)char*s;s="BOOK!
";
14.有定义语句:
doublea[10],*s=a;,以下能够代表数组元素a[3]的是。
A)(*s)[3]B)*s+3C)*s[3]D)*(s+3)
15.有以下定义和语句
structworkers
{intnum;charname[20];charc;
struct
{intday;intmonth;intyear;}s;
};
structworkersw,*pw;
pw=&w;
下面的语句正确的是。
A)*pw.year=1980;B)w.year=1980;
C)pw->year=1980;D)w.s.year=1980;
二、程序阅读题(每题3分,共30分)
16.有以下程序
#include
voidmain()
{inta=0,b=0;
printf("%d,",a+=++a);
printf(“%d\n”,b-=a++);
}
程序运行后的输出结果是________。
A)1,-1B)1,-2C)2,-1D)2,-2
17.有以下程序
#include
voidmain()
{inta=-1,b=0,c=1,m=0,n=0,k;
k=(n=ab>a);
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是________。
A)0,0B)0,1C)1,0D)1,1
18.有以下程序
#include
voidmain()
{inta=0,b=30;
do{b-=a;if(b<5);break;a+=5;}while(a);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是________。
A)0,30B)5,25C)10,15D)15,0
19.有以下程序
#include
voidmain()
{
intx=1234,y=0;
while(x)
{
switch(x%10)
{
default:
y+=1;x/=10;
case2:
y++;x/=10;
case4:
y+=4;x/=10;break;
case3:
y+=3;x/=10;
}
}
printf("%d",y);
}
程序运行后的输出结果是________。
A)7B)9C)12D)20
20.有以下程序
#include
#include
voidmain()
{
chara[20]="ABCD\0EFG\0",b[]="IJ\0K";
strcat(a,b);
printf("%s\n",a);
}
程序运行后的输出结果是________。
A)ABCD\0EFG\0IJ\0KB)ABCDIJ
C)IJ\0KD)ABCDIJ\0K
21.有以下程序
#include
#defineT2.5
#defineA(x)T*x*x
voidmain()
{
inta=1,b=2;
printf("%.1f\n",A(a+b));
}
程序运行后的输出结果是________。
A)6.5B)7.5C)22.5D)122.5
22.有以下程序
#include
structstudent{intnum;charname[10];intscore;};
voidf(structstudentst){st.score++;}
voidmain()
{structstudentst={200,“ChenChen”,76};
f(st);
printf(“%d”,st.score);
}
程序运行后的输出结果是________。
A)200B)75
C)76D)77
23.有以下程序
#include
voidwriteFile(char*filename)
{inta=2,b=3,c=4,d=5,e=6;FILE*fp;
fp=fopen(filename,"wb");
fwrite(&a,sizeof(int),1,fp);
fwrite(&b,sizeof(int),1,fp);
fwrite(&c,sizeof(int),1,fp);
fwrite(&d,sizeof(int),1,fp);
fwrite(&e,sizeof(int),1,fp);
fclose(fp);
}
voidmain()
{
inta,b;FILE*fp;
charname[]=“file.dat”;
writeFile(name);
fp=fopen(name,“rb”);
fseek(fp,sizeof(int),SEEK_SET);
fread(&a,sizeof(int),1,fp);
fseek(fp,sizeof(int),SEEK_CUR);
fread(&b,sizeof(int),1,fp);
fclose(fp);
printf(“\n%d,%d”,a,b);
}
程序运行后的输出结果是________。
A)2,3B)2,4C)3,4D)3,5
24.有以下程序
#include
voidf(int*x,intb)
{*x+=2;
b++;
}
voidmain()
{
inta=3,b=5;
f(&a,b);
printf(“\n%d,%d”,a,b);
}
程序运行后的输出结果是________。
A)3,5B)5,6C)3,6D)5,5
25.以下程序运行后的输出结果是________。
#include
voidf(char*s,char*p)
{
for(;*s;s++);
for(;*p;p++)
if(*p>='0'&&*p<='9')*s++=*p;*s=0;
}
voidmain()
{
chara[10]="xy",b[]="ab2CD12";
f(a,b);
printf("%s",a);
}
A)xyab2CD12B)ab2CD12
C)xyD)xy212
三、程序填充题(每空4分,共40分)
1.以下fun函数的功能是在N行M列的基本整型二维数组中,选出一个最大值作为函数的返回值,请填空。
(设M、N已定义)
intfun(inta[N][M])
{inti,j,row=0,col=0;
for(i=0;i for(j=0;j if(a[i][j]>a[row][col]){(26)} return((27)); } (26)A)a[i][j]=a[row][col];B)i=row;j=col; C)row=j;col=i;D)row=i;col=j; (27)A)a[i][j]B)row,col C)a[row][col]D)a 2.删除长度小于80的字符串中指定的字符,字符串(长度小于80)和要删除的字符均由键盘输入。 #include voidmain() {charstr[80],ch; inti,k=0; gets((28)); ch=getchar(); for(i=0;(29);i++) if(str[i]! =ch) {(30) k++; } str[k]=’\0’; puts(str); } (28)A)strB)str[0] C)&str[0]D)ch (29)A)! str[i]B)str[i]! =’\0’ C)ch=’\0’D)str[i]=’\0’ (30)A)str[k]=str[i];B)str[i]=str[k]; C)str[i]=str[i+1];D)str[k]=str[k+1]; 3.以下程序调用fun函数把main函数中所定义的变量x的值插到a数组下标为k的数组元素中。 程序最终输出结果为插入操作之后数组a的元素及数组中实际数值的个数。 请填空。 #include voidfun(ints[],int*n,intk,intx) {inti; for(i=*n-1;i>=k;i--)(31) s[k]=x; (32) } voidmain() {inta[20]={1,2,3,4,5,6,7,8,9,10,11},i,x=0,k=6,n=11; fun(a,&n,k,x); for(i=0;i } (31)A)s[i]=s[i+1];B)s[i+1]=s[i]; C)s[i]=s[i-1];D)s[i-1]=s[i]; (32)A)*n=*n+1;B)n=n+1; C)*n=*n-1;D)n=n-1; 4.将main函数中所定义的两个有序的数组a、b合并到另一个数组c中,要求合并后仍有序。 #include voidmain() {inti=0,m=5,a[5]={1,3,7,9,13}; intj=0,n=6,b[6]={2,4,8,16,20,24}; intk=0,c[11]; while(i+j {if((33))c[k++]=a[i++]; elseif((34))c[k++]=b[j++]; elseif((35))c[k++]=a[i++]; elsec[k++]=b[j++]; } for(i=0;i } (33)A)i>=mB)i>mC)j>=nD)j>n (34)A)i>=mB)i>mC)j>=nD)j>n (35)A)i==mB)j==nC)a[i] 答案 01-05D,A,B,B,A 06-10C,D,C,B,D 11-15C,C,D,D,D 16-20D,A,A,C,B 21-25A,C,D,D,D 26-30D,C,A,B,A 31-35B,A,C,A,C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 答案