10期中试卷a

余年寄山水
868次浏览
2020年09月10日 07:47
最佳经验
本文由作者推荐

学习方式-初三记叙文































































































线





























































































:―
级―



第 1 页 共 9 页
中国民航大学2009-2010学年第二学期
《C语言程序设计》期中考试试卷
课程编号:03402513 试卷类型: A卷 考试形式:笔试 考试日期:20010-5-8
注意事项:1.将答案写在答题纸上;2.交卷时请确认答题纸是 否按要求写好姓名等信息并与
试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷 的背面。
一、单项选择题(每题1分,共20题)
1)C语言程序的基本结构是( )
A)函数 B)语句 C)字符 D)程序行
2)以下数据中,不正确的数值或字符常量是()。
A)8.9e1.2 B)10 C)0xff00 D)82.5
3)以下标识符中,不能作为合法的C用户定义标识符的是()。
A)For B)Printf C)WORD D)sizeof
4)判断char型变量cl是否为小写字母的正确表达式是()。
A)'a'<=cl<='z'
B)(cl>=a)&&(cl<=z)
C)('a'>=cl)||('z'<=cl)
D)(cl>='a')&&(cl<='z')
5)若已定义x和y是整型变量,且x=5,则表达式y=2.75+x2的值是( )
A)5.5 B)5 C)4 D)4.0
6) 设有输入语句:scanf(为使变量a的值为1, b
的值为3, c 的值为2, 则从键盘输入数据的正确形式是( )
A)132<回车> B)1,3,2<回车>
C)a=1 b=3 c=2<回车> D)a=1,b=3,c=2<回车>
7) 为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总
是与( )
A)编排位置相同的if 配对 B)其前面最近的if 配对
C)其后面最近的if 配对 D)同一行上的if 配对
8) 设有如下变量定义:
int i=8, k, a, b;
unsigned long w=5; double x=1.42, y=5.2;
则以下符合C语言语法的表达式是( )
A)a+=a-=(b=4)*(a=3) B)x%(-3)
C)a=a*3=2 D)y=float(i)
9) 若有定义:int a=12, n=5;则表达式 a%=(n%2)运算后,a的值是( )
A)0 B)1 C)12 D)6
10) 若有说明语句:char c='101'; 则变量c( )
A)包含一个字符 B)包含两个字符
C)包含三个字符 D)说明不合法
11) 选择结构中的条件与循环结构中循环成立的条件, 在写法上可以是任一表达
式,但其值只能被判断为“真”或“假”。 哪个数作为逻辑“假”值()。
A)-1 B)1 C)非零的数 D)0
12) int a[10];合法的数组元素的最小下标值为()。
A)10 B)9 C)1 D)0


第 2 页 共 9 页
13) 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是
A)(!E==0) B)(E>0||E<0) C)(E==0) D)(E!=0)
14) 设r,s,t为实型变量,代数式(rs)(10t)在C程序中的正确写法是( )。
A)rs10t B)r*s10t C)r*s10t D)r*s10*t
15) 以下语句中,循环次数不为10次的语句是()。
A)for(i=1;i<10;i++);
B)i=1;do{i++;}while(i<=10);
C)i=10;while(i>0){--i;}
D)i=1;m:if(i<=10){i++;goto m;}
16) 若有说明: static int a[3][4]={0};则下面正确的叙述是()。
A)只有元素a[0][0]可得到初值0
B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
17) 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
A)2 B)3 C)4 D)无确定值
18) 设j和k都是int类型,则下面for循环语句说法正确的是()。
for(j=0,k=-1;k=1;j++,k++)
printf(
A)循环结束的条件不合法 B)是无限循环
C)循环体一次也不执行 D)循环体只执行一次
19) 以下不能对二维数组a进行正确初始化的语句是()。
A)int a[2][3]={0};
B)int a[][3]={{1,2},{0}};
C)int a[2][3]={{1,2},{3,4},{5,6}};
D)int a[][3]={1,2,3,4,5,6};
20) 若已包括头文件且有说明 char s1[5],s2[7];要给s1和s2赋值,下
列语句中正确的是( )
A)s1=getchar(); s2=getchar(); B)scanf(
C)scanf(); D)gets(&s1);gets(&s2);
二、单项选择题(每题2分,共15题)
21) 以下程序的输出结果为()。
#include
main()
{int i=010,j=10;
printf(
A)11,10 B)9,10 C)010,9 D)10,9
22)下列程序段的输出结果为()。
int x=3,y=2; printf(
A)1 B)7 C)3 D)5
23) 下面程序运行时,若从键盘输入的数据形式为 25,13,10,则正确的输出结
果是( )
#include
main()
{ int x, y, z;
scanf(


第 3 页 共 9 页
printf(
A)x+y+z=48 B)x+y+z=35 C)不确定值 D)x+z=35
24) 有以下程序:
#include
main ()
{int c;
while((c=gether())!=‟n‟)
{switch(c-„2‟)
{case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break}}
printf(“n”);}
从第一列开始输入以下数据,代表一个回车符.
2473程序的输出结果是( )
A)668977 B)668966 C)66778777 D)6688766
25) 运行以下程序段的运行结果是( )
int x=1,y=2,z=3,a=-1;
if(x<=y) a=0;
else if(z>y) a=1;
printf(,x,y,z,a);
A) 1 2 3 1 B) 1 2 3 0
C) 1 2 3 -1 D) 编译时报语法错误,不能执行
26) 有以下程序
#include
main()
{char s[]={“612xy”};int i,n=0;
for(i=0;s[i]!=‘0’;i++)
if(s[i]>=‘a’&&s[i]<=‘z’)n++;
printf(“%dn”,n);}
程序运行后的输出结果是( )
A) 0 B) 2 C) 3 D)5
27) 设已包含标题文件,在处理下述程序段时
char s1[6]=
s1=s2;
printf(
A)编译出错 B)运行后输出Excelpoint
C)运行后输出Excel oint D)运行后输出 Excel
28) 以下程序的运行结果是()。
#include
main()
{ int n;
for(n=1;n<=10;n++)


第 4 页 共 9 页
{
if(n%3==0) continue;
printf(
}}
A)12457810 B)369 C)12 D)1234567890
29) 若已包括头文件且已有定义 static char str[9]; 现要使str从键
盘获取字符串应使用( )
A)scanf()for(i=0;i<9;i++) getchar(str[i]);
C)gets(str); D)for(i=0;i<9;i++) scanf(
30) 若已包括头文件且已有定义:
char str[]={'a','0','c','a','t','0'};
int i;
现要输出应使用( )
A)for(i=0;i<6;i++) printf(
B)printf(
C)for(i=0;i<6;i++) putchar(str);
D)puts(str);
31) 若希望下面的程序运行后输出25, 请选择正确的选项将程序填写完整。
#include
main()
{ int i,j=50,a[]={7,4,10,5,8};
for (________)
j+=a[i];
printf(
A)i=4;i>2;--i B)i=1;i<3;++i
C)i=4;i>2;i-- D)i=2;i<4;++i
32)下面的程序运行后, 输出结果是( )
#include
main()
{ int i, j, a[7][7], x=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=3*j+i;
for(i=2;i<7;i++)
x+=a[i][i];
printf(
}
A)8 B)不确定值 C)20 D)0
33) 有以下程序
#include
main()
{char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf{“%c,%dn”,c1,c2};
}


第 5 页 共 9 页
已知字母A的ASCII码为65,程序运行后的输出结果是( )
A)E,68 B)D,69 C)E,D D)输出无定值
34) char a[10];不能将字符串存储在数组中的是()。
A)strcpy(a,
B)a[0]= 0;strcat(a,
C)a=
D)int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
35) 下面的程序用来输出两个字符串前5个字符中所有对应相等的字符及其位置号,
请选择正确的选项将程序填写完整。( )
#include
main()
{ char s1[]=
int i;
for(i=0;s1[i]!='0' && s2[i]!='0'; i++)
if (s1[i]==s2[i] && i<5)
________;
}
A)putchar(s2[i]); putchar(i)
B)puts(s1[i],i)
C)printf(
D)printf(()

三、填空题(每题2分,共40分)
1) 下面程序的运行结果是
#include
main()
{int a=1,b=0;
printf(“%d”,b=a+b);
printf(“%dn”,a=2*b);
}
2) 下面程序的运行结果是
#include
main()
{ int x=100, a=10, b=20, ok1=5, ok2=0;
if (a if (b!=15)
if (!ok1)
x=1;
else
if (ok2) x=10;
x=-1;
printf(
}
3) 下面程序的运行结果是


第 6 页 共 9 页
#include
main()
{ int x=0, y=1, z=0;
if (x=z=y)
x=3;
printf(
}
4) 若运行下面程序时,给变量 a 输入 15, 则输出结果是
#include
main()
{ int a,b;
scanf(
b=a>15?a+10:a-10;
printf(
}
5) 下列程序的运行结果是
#include
main()
{char cc;
cc='a';
cc++;
printf(
6) 下面程序的运行结果是
#include
main()
{ int m=7, n=5, i=1;
do
{ if(i%m==0)
if(i%n==0)
{ printf(
i++;
} while(i!=0);
}
7) 以下程序运行后的输出结果是
#include
main()
{
int x=20;
printf(
printf(
}
8) 以下程序段运行下面程序时,从键盘输入字母 H, 则输出结果是
#include
main()
{ char ch;
ch=getchar();


第 7 页 共 9 页
switch(ch)
{ case 'H': printf(
case 'G': printf(
defualt : printf(
}
}
9) 设 int x=0,y=-1;则执行下列程序段的输出结果为
if(x!=0)
if(x>0) y=1;
else y=0;
printf(
10) 设已执行预编译命令#include ,运行下面程序段的输出结果是
char s1[7]={'S','e','t','0','u','p','0'};
printf();
11) 当执行下面的程序且输入ABC时,输出结果为:
#include
main()
{ char ss[10]=“12345”;
strcat(ss,”6789”); gets(ss);
printf(“%s”,ss);
}
12) 阅读程序:
#include
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:
switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:
a++;b++;break;
}
printf(
}
上面程序的输出结果是:
13) 下面程序输出结果是什么?
#include
main()
{ int a,n,i,s=0,p=0;
n=2;a=2;
for(i=1;i<=n;++i)
{p=p*10+a;s+=p;}
printf(
14) 运行下面程序段的输出结果是


第 8 页 共 9 页
static int a[7]={1,3,5}
printf(
15)运行下面的程序段,输出结果是
char s1[10]=
strcat(strcpy(s1,s3),s2);
puts(s1);
16) 以下程序运行后的输出结果是
#include
main()
{
int a=1,b=7;
do{
b=b2;
a+=b;
}while(b>1);
printf(
}
17)程序
#include
main()
{ char ch[10];
scanf(“%s”,ch);
printf(“%sn”,ch); }
执行时,若从键盘输入how are you!,则输出
18)下面的程序用来求二维数组的最大元素及其位置,请将程序填写完整。
#include
main()
{ int a[5][4],i,j,max,row,col;
for(i=0;i<5;i++)
for(j=0;i<4;j++0
scanf(
max=a[4][0];
row=4;
col=0;
for(_____ ___)
for(j=0;j<4;j++)
if(max{ max=a[i][j];
row=i;
col=j;
}
printf(
}
19) 有如下程序
#include
#define N 5


第 9 页 共 9 页
main()
{ int a[N]={1,2,3,4,5},i,j,temp;
for(i=0;i for(i=0, j=N-1; i { temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf(“n”);
for(i=0;i 执行后显示结果是
20)判断m是否是素数,在横线上填上适当的语句。
#include
#include
void main()
{ int m,i,k;
scanf(“%d”,&m);k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) ;
if(i>=k+1) printf(“%d is a prime numbern”,m);
else printf(“%d is not a prime numbern”,m);
}

三、编程序题(每题5分,共2题)
1、输入30个数,求和。
2、打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数 ,其各位数字的立
方和正好等于该数本身。例如:153 是一个“水仙花数”,因为 153=1
3
+5
3
+3
3

一氧化碳还原氧化铜-事故反思总结


公务员报名流程-党群众路线心得体会


香港身份证-行政执法工作总结


红鸡蛋-技能专长


四川大学锦江学院图书馆-吉林市教育信息网


母乳喂养周-上海一本大学


杏林学院-领导人换届


我和别人不一样-社会实践小结