-- -- - -- -- - -- -- -- - -- -- -- ---号 ---学---- -- - -- -- 线- -- -- -- -- -- -- -名 -线---姓 -- - -- 订--- - -- - 装--- -- - 超--- - 勿订-- -- -业题--- --专 -- - 答--- -- -- -- -- -- -- -- --级----年---- -- -- - 装 -- -- - -- -- -- - -- --系---/--院--------- 安徽大学2014—2015学年第 2 学期期中
《C语言程序设计》考试试卷
(闭卷 时间120分钟)
题 号 一 二 三 四 五 总分
得 分
一、单项选择题(每小题2分,共20分):
得分 下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确 选项填在答题卡相应题目的横线上。答在试卷上不得分。
1. 设a、b、c为整型变量,能正确表达数学关系“a
B. a
C. ab)&&!(b>c);
2. 下列字符串中属于C语言字符常量的是【_______】。 A. ?abc? B. “a” C. ?\\n? D. ?a\\0?
3. 设实型变量x的值是10.0,则表达式“!!!x”的值是【______】。 A. 10.0 B.13.0 C.1 D. 0
4. Int a,b,c; a=b=c=0; 执行下列语句后c等于【_______】。
If (a=b) c++; else c=!c;
A. 0 B. -1 C. 1 D. 不确定 5. 以下能正确求1+2+...+100 的程序段是【_______】。 A)int i=1, sum=0; B)int i=1, sum=0;
do do
sum+=++i; sum+=++i; while( i<100 ); while( i<=100 );
C)int i=1, sum=0; D)int i=1, sum=0;
do do
sum+=i++; sum+=i++; while( i<100 ); while( i<=100 ); 6. 下面程序的功能是计算10!,需要补充的语句是【_______】。
int i, sum; __________ for (i=1; i<=10;i++) sum*=i;
A. sum=0 B. sum=1 C. sum=0; D. sum=1; 7. 下面程序的输出是【_______】。___D______
#include
void main() { int k=11;
printf(\}
A. k=11,k=12,k=11 B. k=11,k=13,k=13 C. k=11,k=013,k=0xb D. k=11,k=13,k=b
8. 在下列选项中,不正确的赋值语句是【_______】。 A. ++t; B. n1=(n2=(n3=0)); C. k=i=j; D. a=b+c=1;
9. 以下程序的输出结果是【_______】。
#include
void main() { int x=10,y=10;
printf(\}
A.10 10 B. 9 9 C. 9 10 D. 10 9
10. 假定等级和分数有以下对应关系:
等级:A 分数:85~100 等级:B 分数:60~84 等级:C 分数:60 以下
对于等级grade输出相应的分数区间,能够完成该功能的程序段是
【_______】A. switch (grade)
{
case 'A':printf(\ case 'B':printf(\ case 'C':printf(\以下\\n\ default:printf(\等级错误!\\n\ }
B. switch (grade)
{
case 'A':printf(\ case 'B':printf(\ case 'C':printf(\以下\\n\ default:printf(\等级错误!\\n\ }
C. switch (grade)
{
case 'A':printf(\ case 'B':printf(\ case 'C':printf(\以下\\n\ default:printf(\等级错误!\\n\ }
D. switch (grade)
{
case 'A':printf(\ case 'B':printf(\ case 'C':printf(\以下 \\n\ default:printf(\等级错误!\\n\ }
二、填空题(每题2分,共10分)
请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。 1. 表达式“(a>b)?a:b”的作用是获得a、b中的 。 2. 表达式“a+=b,b=a-b,a-=b;”的作用是 。 3. continue语句在循环体中执行时提前_______ 循环; break语句在循环体中执行时立即 循环。
4. 若定义char str[80]=“this\\0is\\0a book”,则字符型数组str中存放的字符串长度是__________。
5. 若定义char Name[20]; 则 可以输入带空格的字符串。
三、程序改错题(共20分,每错2分,说明,如果发现不了错误,可以按自己思想写程序)
1、求一维数组a中所有元素的平均值,结果保留两位小数。
例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。
#include
int a[10]={10,4,2,7,3,12,5,34,5,9},i; /************found************/ int aver,s;
/************found************/ s = 0;
for ( i=1; i<10; i++) s += a[i]; aver = s / i;
printf(\}
2.求一维数组a中的最大元素及其下标。
例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9, 程序的输出应为:The max is: 34,pos is: 7 。
#include
int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max = a[0]; pos = 0;
for ( i=1; i<10; i++)
/************found************/ if (max > a[i]) {
max = a[i];
/************found************/ i = pos; }
printf(\}
3. 学习优良奖的条件如下:所考5门课的总成绩在450分(含)以上;或者每门课都在88分(含)以上。输入某学生5门课的考试成绩,输出是否够学习优良奖的条件。
#include
int score,sum=0; int i,n=0;
for(i=1;i<=5;i++)
{ scanf(\ sum+=score;
/************found************/ if(score<=88) n++; }
/************found************/ if(sum>=450 && n==5 )
printf(\ good!\\n\ else
printf(\ }
4. 某人编写程序求输入五个整数中的最小数,请仔细阅读他的程序,指出并纠正程序中的错误。
#include
int a,i=1,min; while (i<=5) {
/************found************/ printf(“\\n请输入第%d个数据:”); scanf(“%d”,&a);
/************found************/ if (min>=a) min=a; i=i+1; }
/************found************/ printf(“min+%d\\n”,min);

