C语言试题及答案解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言

一、选择题(第题2分,共20分)

1.一个C程序的执行是从 A 。

A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C) 本程序文件的第一个函数开始,到本程序main函数结束

D) 本程序的main函数开始,到本程序文件的最后一个函数结束

2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。

x=(i=4,j=16,k=32)

A) 4 B) 16 C) 32 D) 52

3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。

A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647

4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。

A) float B) char C) int D) double

5. putchar函数可以向终端输出一个

D 。

A) 整型变量表达式 B) 实型变量值

C) 字符串 D) 字符或字符型变量值

6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。

A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出

C) 右对齐输出该字符串,左补空格 D) 输出错误信息

7.判断char型变量ch是否为大写字母的正确表达式是 C 。

A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)

C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)

8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。

if(x>y) z=x; x=y; y=z;

A) x=10, y=20, z=30 B) x=20, y=30, z=30

C) x=20, y=30, z=10 D) x=20, y=30, z=20

9.以下程序段______C__.

x=-1;

do{

x=x*x;

}

while(!x);

A)是死循环 B)循环执行二次

C)循环执行一次 D)有语法错误

10.以下正确的描述是___B____.

A)continue语句的作用是结束整个循环的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时,只能使用goto语句

二、填空题(每空2分,共20分)

1. C语言中,用关键字 int 定义基本整型变量,用关键字 float

定义单精度实型变量,用关键字 char 定义字符型变量。

2.表达式3*20/4%10的计算结果是 5 。

3.复合语句是将多个语句用花括号括起来组成一个语句。

4.程序中使用putchar( )函数和getchar( )函数,在程序的开头必须加上

char 。

5. C语言源程序文件名的后缀是 .c 。

6.从程序流程看,C语言程序分为3种基本结构,它们是顺序结构、

选择结构、循环结构。

三、改错题(每处1分,共5分)

下面的程序要求输出x和y的值,其中有5处错误,请找出并改正之:

(把改正后的完整的各个声明或语句直接写在原语句的右边)

#include

void main()

{ int x; int x,y;

scanf(“%d”,x) scanf(“%d”,&x);

y=2x+1;

printf(“x=%d,y=%d\n”); } printf(“x=%d\n,y=%d\n”,x,y); }

四、程序分析与程序填空题(每题5分,共10分)

(1) 1. 写程序,判断某一年是否为闰年。

闰年的条件是:①能被4整除,但不能被100整除的年份是闰年;②能被100整除,又能被400整除的年份是闰年

(年份:year;若闰年,令leap=1;非闰年,leap=0.)

请填空,完成下面的程序

#include

void main()

{

int year,leap;

scanf(“%d”,&year);

if(year%4==0)

{

(1) year%100==0

{

if(year%400==0)

(2) year%400==0

else

(3) leap=1

}

else

leap=1;

}

else

leap==0;

if( (4) leap )

printf(“%d is”,year);

else

prin tf(“%d is not”,year);

printf(“ a leap year.\n”);

}

2. 下面的程序输出9*9乘法表,请填空。

#include "stdio.h"

void main()

{ int i,j,result;

printf("\n");

for (i=1; (1) i<=9 ;i++)

{ for(j=1;j<=i;j++)

{

result=i*j;

printf("%d*%d=%-3d", (2) );

}

printf("\n\n");

}

printf("\n");

}

五、简答题(每题5分,共10分)

1. 简述字符常量'a'与字符串常量"a"有何区别?

'a'是字符型数据,"a"是字符串数据,分别用putchar和getchar输入。

2. 简述下列for语句的执行过程:

for(e1;e2;e3)

语句A;

(1) 先求解表达式e1

(2) =求解表达式e2,若值为真,则执行for语句中指定的内嵌语句,然后执行第(3)步,若假,则结束循环,转到第(5)步。

(3) 求解表达式e3

(4) 转回上面第(2)步继续执行

(5) 循环结束,执行下个for语句的执行

六、程序设计题(1题5分,2题10分,3题10分,4题10分)

1. 输入一个华氏温度,要求输出相应的摄氏温度。(保留两位小数)

相关文档
最新文档