资源描述
(完整版)c语言考题及答案
2011—2012第二学期C语言期末试卷
一、选择题:(每小题1分,共20分)
1、一个C程序的执行是从( A ).
A。本程序的main函数开始,到main函数结束
B。本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C。本程序的main函数开始,到本程序文件的最后一个函数结束
D。本程序文件的第一个函数开始,到本程序main函数结束
2、 在 C 语言中,每个语句必须以( D )结束。
A。 回车符 B。 冒号 C. 逗号 D。 分号
3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始 B。 必须在系统调用的库函数的后面
C。 可以任意 D。 必须在最后
4、以下选项中,( D )是不正确的 C 语言字符型常量。
A。 ’a' B。 '\x41’ C。 '\101’ D. "a"
5、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C ). x=(i=4,j=16,k=32)
A。 4 B. 16 C。32 D。52
6、在以下一组运算符中,优先级最低的运算符是( D )。
A。 * B。 != C。 + D. =
7、了避免嵌套的if-else语句的二义性,C语言规定else总是
与( C )组成配对关系。
A. 缩排位置相同的if B. 在其之前未配对的if
C。 在其之前尚未配对的最近的if D。 同一行上的if
8、为表示关系x≥y≥z,应使用C语言表达式( A )
A. (x>=y)&&(y〉=z) B. (x〉=y)AND(y>=z)
C。 (x〉=y>=z) D. (x〉=y) || (y>=z)
9、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )
A.read(a,b,c) B。scanf(“%d%d%d",a,b,c);
C.scnaf(“%D%D%D”,&a,&b,&C); D.scanf(“%d%d%d”, &a,&b,&c);
10、执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是( C )
A.1 2 B.1 2 C.1,2 D。12
11、main()
{ int i = 10, j = 1;
printf(”%d,%d\n",i— —, ++j);
}执行后输出结果是( B )
A。 9,2 B. 10,2 C。 9,1 D. 10,1
12、C语言中while和do-while循环的主要区别是( A )
A.do-while的循环体至少无条件执行一次
B。while的循环控制条件比do—while的循环控制条件严格
C.do-while允许从外部转到循环体内
D。do—while的循环体不能是复合语句
13、下面有关for循环的正确描述是( D )
A.for循环只能用于循环次数已经确定的情况
B。for循环是先执行循环体语句,后判断表达式
C。在for循环中,不能用break语句跳出循环体
D。for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
14、以下正确的描述是( B )
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C。在循环体内使用break语句或continue语句的作用相同
D。从多层循环嵌套中退出时,只能使用goto语句
15、以下对C语言函数的有关描述中,正确的是( A )。
A。 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B。 C函数既可以嵌套定义又可以递归调用
C。 函数必须有返回值,否则不能使用函数
D。 C程序中有调用关系的所有函数必须放在同一个源程序文件中
16、以下正确的函数定义是( D ) 。
A。double fun(int x, int y) B.double fun(int x,y)
{ z=x+y ; return z ; } { int z ; return z ;}
C.fun (x,y) D。double fun (int x, int y)
{ int x, y ; double z ; { double z ;
z=x+y ; return z ; } return z ; }
17、程序的三种基本结构是( B )。
A.顺序结构,循环结构,递归结构 B。顺序结构,循环结构,选择结构
C.选择结构,循环结构,递归结构 D.顺序结构,选择结构,递归结构
18、有以下程序片段,请问执行后的输出结果是( D )
int i;
for (i=1;;i++);
printf(“%d”,i++);
A.1 B。2 C。3 D。陷入死循环,无输出结果
19、有以下程序段:
int i,j;
for(i=0;i〈5;++i)
for(j=0;j<5;++j)
printf(“*”);
则执行以上的程序片段后,输出‘*’个数是( C )
A。15 B.10 C。25 D.20
20、switch(表达式)语句中的“表达式”,允许的类型是( C )
A.float, int B.float, int, char
C。 int, char D。 char, double
二、填空题(每小题2分,共24分)
1、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
2、C 语言源程序文件的扩展名是 。cpp 。
3、C语言中的实型变量分为两种类型,它们是 float 和 double 。
4、C控制语句有 9 种.
5、C语言本身不提供输入输出语句,其输入输出操作是由 函数 来实现的。
6、C语言共提供了三种用于实现循环结构的流程控制语句,它们是 while 、do while 和for 。
7、函数调用时,若形式参数和实际参数均为变量名时,传递方式为 值 ;
8、C语言变量的存储类别有自动变量auto、 static 、 extern 和寄存器变量register。
9、、设int i,j;
for(i=5;i>0;i-—)
for(j=0;j〈4;j++) {…}
则循环体执行次数是__20__。
三、程序填空(每小题2分,共14分)
1、学生成绩的字每等级和分数范围如下:
字母等级 分数范圈
A 90~100
B 80~89
C 70~79
D 60~69
E 0~59
其它字母 输入错误
输入字母等级之后,输出相应的分数范围。
#include <stdio.h>
main()
{
char score;
scanf(”%c”,&score);
switch(score)
{
case ’A': printf(”A:90~100\n”); break;
case 'B’: printf(”B:80~89\n”);break;
case 'C': printf("C:70~79\n”);break;
case ’D’: printf(”D:60~69\n”);break;
case 'E': printf(”E:0~59\n”);break;
default: printf(”输入错误\n");
}
}
2、输入字母,如果是大写,转换为小写输出,反之转换为大写输出。
#include <stdio.h>
main( )
{
char ch;
scanf(”%c",&ch);
if(ch>='a'&&ch〈=’z')
ch=ch-32;
else if(ch〉='A'&&ch〈=’A')
ch=ch+32;
putchar(ch);
}
3、输出1-100间偶数的和
#include <stdio。h>
main( )
{
int i,sum;
scanf("%d,%d”,&i,&sum);
for(i=2;i〈=100; i++ )
sum=sum+i;
printf("%d”,sum);
return 0;
}
四、写出程序运行结果(每小题4分,共12分)
1、#include<stdio.h〉
void main()
{
int num=0;
while (num<=2) { printf(”%d ",num); num++;}
}
0 1 2
2、#include〈stdio。h>
int x;
void cude()
{ x=x*x*x; }
void main()
{ x=5;
cude();
printf("%d\n”,x);
}
125
3、main()
{
int i;
for(i=1;i〈=4;i++)
printf(“*”);
}
****
五、编写程序(每小题15分,共30分)
1、输入三角形的三边长a,b,c,输出其面积area。提示:area= ,p=(a+b+c)/2
#include<stdio。h〉
#include<math.h>
int main()
{
float a,b,c,area,p;
scanf(”%f,%f,%f”,&a,&b,&c);
p=(a+b+c)/2;
area=sqrt((p-a)*(p—b)*(p-c));
printf(”the area is %5.2f\n",area);
return 0;
}
2、输出九九乘法表
#include〈stdio。h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{for(j=1;j〈=i;j++)
printf("%d*%d=%d\t",j,i,i*j);
if(i=j)
printf(”\n");}
return 0;
}
展开阅读全文