C 语言上机考试-20
2008.8.8
1. 选择题 ( 评分标准 20 分,每小题2分 )
1.设有int x=11;,则表达式 (x+1/3) 的值是________。 (A) 3 (B) 4 (C) 11 (D) 12
2.设有字符串定义a[]=\has QI!\,则a字符串的长度为________。 (A) 9 (B) 10 (C) 11 (D) 8
3.有如下程序段,则正确的执行结果是________。
int m=3; while(m<=5) { printf(\ m++; }
(A)0 0 0 (B)0 1 2 (C)1 2 3 (D) 无结果
4.执行语句:int b,a; printf(\(a=2)&&(b=-2)); 后,输出结果是________。 (A) 无输出 (B) 结果不确定 (C) -1 (D) 1
5.有如下定义类型语句,若从键盘输入数据,正确的输入语句是________。
int x; char y; char z[20]; (A) scanf(\ (B) scanf(\(C) scanf(\ (D) scanf(\6.设有如下定义:
struct ss{ char name[10]; int age; char sex; } std[3],*p=std;
下面各输入语句中错误的是________。
(A) scanf(\ (C) scanf(\
(B) scanf(\(D) scanf(\
7.在C语言中,对于实型数组,其每个数组元素的类型是________。 (A) 实型 (B) 整型 (C) 可以为任何类型 (D) 不确定
8.若已定义:int a[9],*p=a; 不能表示a[1] 地址的表达式是________。 (A) p+1 (B) a+1 (C) a++ (D) ++p
9.从循环体内某一层跳出,继续执行下一循环的语句是:________。
(A) break语句 (B) return语句 (C) continue语句 (D) 空语句。 10.在C++的类中,用于表示公共类型的关键字是________。
(A) class (B) private (C) protect (D) public
套数号 20 答案 1. C 2. B 3. B 4.D 5. D 6. B 7. A 8. C 9. C 10. D 2. 判断题 ( 评分标准 20 分,每小题2分)
1. 表达式x=a=3,6*3的值是18。
2. 在C语言中,逻辑运算符&&、||、!的优先级从高到低的排列为: &&、!、||。 3. 在C语言所有的运算符中,优先级最低的是\。
4. 对于一个字符串ch=\ sizeof(ch)与strlen(ch)的值相等。 5. 在C语言中,顺序、选择、循环都是算法的基本单元。 6. 对于循环while(!e)语句, !e等价于e!=0。
7. C语言程序中的main()函数,可以放在程序的任意部分。 8. C 语言中,局部变量的缺省的存储类别是auto。 9. 在C语言中,一般建议多使用全局变量及GOTO语句。 10. 链表的结点都是动态分配的,因此所有的链表都是动态链表。
套数号 20 答案 1. T 2. F 3. F 4. F 5. T 6. F 7. T 8. T 9. F 10. F
3. 填空题 ( 评分标准 10 分,每小题2分)
1.下面程序段的输出结果是____________。
int a=1234; a=a&0377; printf(\
2. C语言中,__________语句的作用是结束本次循环,然后执行下一循环。 3. 在以下程序段中,k为整型,则while循环执行__________次。
int k=2; while(k==0) k--; printf(\
4. 数组名作为实参传递给形参时,是把数组的__________传递给形参(用文字表示)。 5. C语言中以追加方式打开一个文件应选择___________参数(用字符表示)。
第20套 (1) 210 (2) continue (3) 0 (4) 首地址 (5) a 4. 程序改错题 ( 评分标准 20 分,每小题 5分 )
1. 以下程序的功能是,求从键盘输入十个实数:1.0 2.0 3.0 4.0 5.0 6.1 7.2 8.3 9.4 10.5中的整数部分和,及十个实数的平均值。 #include
int i,n=0;
float s=0.0,s1=0.0,a[10]; for(i=0; i<10; i++)
scanf(\if(a[i]>0) { }
printf(\
s+=(int)a[i]; s1+=a[i]; n++;
for(i=0; i<10; i++)
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/* $1*/”行中的语句s=a[i]; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求从键盘输入十个实数:1.0 2.0 3.0 4.0 5.0 6.1 7.2 8.3 9.4 10.5中的整数部分和,及十个实数的平均值。 答案:s+=(int)a[i]; 运行样例1行
运行样例1:运行结果:55 5.65
2. 以下程序,从键盘上输入10个整数存入一维数组中,排序后按由大到小的顺序输出。 #include
{ int i,j,t,a[10]; }
for(i=0;i<10;i++)
scanf(\for(i=0; i<9; i++) for(j=9; j>i; j--)
if(a[j-1]
a[j+1]=a[j]; /* $1 */ a[j]=t; }
for(i=0;i<10;i++)
printf(\
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句a[j+1]=a[j]; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:从键盘上输入10个整数存入一维数组中,排序后按由大到小的顺序输出。例如输入:12 55 42 33 8 5 45 7 1 0,运行后输出:55 45 42 33 12 8 7 5 1 0。 答案:a[j-1]=a[j]; 运行样例2行
运行样例1:输入:12 55 42 33 8 5 45 7 1 0
运行后输出:55 45 42 33 12 8 7 5 1 0
3. 下列程序中函数fun()的功能是:在字符串:fagAyBDh中,找出ASCⅡ码值最大的字符,并将其放在第一个位置上,同时把该字符前的原字符向后顺序移动,调用后字符串中的内容为:yfagABDh。 #include
while (p[i]!=0){ if (max
while(q>p){ *q=*(q-1); q--; }
p[0]=max; }
main()
{ char str[20]=\ fun(str); printf(\ }
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句p=q+i;有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数fun()的功能是:在字符串:fagAyBDh中,找出ASCⅡ码值最大的字符,并将其放在第一个位置上,同时把该字符前的原字符向后顺序移动,调用后字符串中的内容为:yfagABDh。 答案:q=p+i; 运行样例1行
运行样例1:运行结果:yfagABDh
4. 下列程序中函数fun()的作用是:将字符串tt中的小写字母其ASCII值大于105的,都改为对应的大写字母,其他字符不变。例如,若输入\,则输出\。 #include
char fun(char tt[]) /* $ */ {
int i;
for(i=0;tt[i];i++)
if((tt[i]>='a')&&(tt[i]<= 'z')&&(tt[i]>=105))
tt[i]-=32;
{
}