}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++)printf(“%d,”,aa[i]);
printf(“\n”);
}
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,
第二卷
说明:
(1)第二卷均为程序填空题,在阅读和理解程序的基础上,在第二卷答题卡是编号对应的栏目中填入适当的字符、语句,以构成一个正确的C语言程序。
(2)每空栏3分,10个空栏共30分。
试题一:
以下程序将两个数从小到大输出。
main()
{floata,b,1;temp
scanf(“2“,&a,&b);%f%f
if(a>b)
{temp=a;
3;a=b
b=temp;}
printf(“%f,%f”,a,b);
}
试题二:
以下程序是打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个”水仙花数”,因为153=1×1×1+5×5×5+3×3×3。
main()
{inti,j,k,n;
printf(“’waterflower’numberis:
”);
for(n=100;4;n++)n<=999
{i=n/100;
j=5;n/10%10或n%100/10
k=n%10;
if(6)printf(“%-5d”,n);n==i*i*i+j*j*j+k*k*k
}
printf(“\n”);
}
试题三:
以下程序通过写一函数求一个字符串的长度,在main函数中输入字符串,并输出其长度。
main()
{intlen;
7;charstr[100]
printf(“pleaseinputastring:
:
\n”);
scanf(“%s”,str);
len=8;length(str)
printf(“thestringhas%dcharcters.”,len);
}
length(char*p)
{intn;
n=0;
while(9)*p
{10;n++
p++;
}
returnn;
}
C语言试题
(二)2010.6
第一卷(本卷第1~20题每题2分,第21~30题每题3分,共70分)
第一部分基础知识(20项,每项2分,共40分)
1.可以从循环体内跳出,继续执行该循环外语句的是__________。
A.break语句 B.return语句 C.continue语句 D.空语句
2.下列语句不具有赋值功能的是__________。
A.a*=b B.x=1 C.a+b D.a++
3.下列标识符中不是合法标识符的是__________。
A.hot_do B.cat1 C._pri D.2ab
4.数学表达式ax2+bx+c所对应的C语言表达式为__________。
A.ax2+bx+c B.a*x2+b*x+c C.a*x*x+b*x+c D.a*x*2+b*x+c
5.若x为一个实数,那么输出x应该使用下面哪个语句__________。
A.printf(“x=“,x); B.printf(“x=%d”,x);
C.printf(“x=%f”,x); D.printf(“x=%”,x);
6.设i和k都是int类型,则以下对循环语句
for(i=0,k=-1;k=1;i++,k++)
{
printf(“****\n”);
}
说法正确的是__________。
A.循环结束条件不合法 B.循环体一次也不执行
C.循环体执行一次 D.该循环是无限循环
7.下面说法错误的是__________。
A.do…while{}语句至少执行一次循环 B.break语句可以跳出switch语句和循环语句
C.每个if一定有一个else和它对应 D.每个else一定有一个if和它对应
8.以下程序输出结果为
#include“stdio.h”
main()
{
charc=‘c’;
printf(“%c”,c+2);
}
输出结果是__________。
A.有语法错误,不能通过编译 B.e C.99 D.c
9.判断字符串a和b相等的正确表达式是__________。
A.if(a=b) B.if(strcpy(a,b))
C.if(strcmp(a,b)==0) D.if(a==b)
10.C语言程序中,函数返回值的类型是由__________决定。
A.return语句中的表达式类型 B.调用该函数的主调函数类型
C.调用该函数的形参类型 D.在定义该函数时所指定的函数类型
11.下列叙述中不正确的是__________。
A.C程序的注释部分放在”/*” 和”*/”之间,”/” 和”*”之间不能有空格
B.一个C源程序可由一个或多个函数组成
C.一个可正确运行C语言程序必须有一个且只能有一个main函数
D.C程序编译时注释部分的错识将被发现.
12.为了用宏名PR表示常量printf,以下宏定义中符合C语言语法的是__________。
A.#definePR,printf B.definePRprintf
C.#definePRprintf; D.#definePRprintf
13.与y=a>b?
a:
b语句等价的程序段的是______________。
A.if(a>b)y=a;elsey=b; B.if(a>b)y=b;elsey=a;
C.if(a>b)y=a;y=b; D.if(a>b)y=b;y=a;
14.一个C语言程序总是从__________开始执行的。
A.编译预处理 B.输出语句
C.主函数 D.排在前面的语句
15.对于程序段:
int*p,a=5;
p=&a;
下列表达式中代表地址的是__________。
A.a,p,*&a B.&*a,&a,*p C.*p,*&p,&a D.&a,&*p,p
16.有说明”intn=2,*p=&n,*q=p”,则以下非法的赋值语句是__________。
A.p=n; B.*p=*q; C.n=*q; D.p=q;
17.运行以下程序段时编译出错,其原因是_____________。
charc1=‘a’,c2=‘123’;
printf(“%c,%d\n”,c1,c2);
A.字符串要用”123”表示
B.’123’只能赋值给字符数组
C.c2是字符变量,不能用 %d格式输出
D.‘123’不是正确的字符常量,不能赋值给字符变量c2
18.以下程序段运行的结果是__________。
enumwd{a=1,b,c,d,e}wk=e;printf(“%d\n”,wk));
A.4 B.5 C.-1 D.e
19.设整型变量a为5,使b不为2的表达式是__________。
A.b=a/2 B.b=6-(--a)