C语言1卷

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

一、单选题(每小题1分,共20分)
1. 下列选项中,可以用作C语言程序中的变量名的是( )。

A. 3ab
B. sum
C. int
D. xy$
2. 下列运算符中,具有右结合性的是( )。

A. +
B. /
C. >=
D. =
3. 下列选项中,不合法的字符常量是( )。

A. ′\b′
B. ′\n′
C. ′K′
D. ′\085′
4. 以下C程序段执行后,输出结果是( )。

int k=10;printf("%d,%o,%x\n",k,k,k);
A. 10,10,10
B. 10,12,a
C. 12,12,12
D. a,a,a
5. 以下C程序段执行后,输出结果是( )。

int x=0x20;printf("%d\n",x--);
A. 20
B. 19
C. 32
D. 31
6. 设x是int型,则与逻辑表达式!x等价的关系表达式是( )。

A. x==0
B. x!=0
C. x==1
D. x!=1
7. 程序段:int k=10;while(k=1) k++;
执行时,语句k++;执行的次数是( )。

A. 无限次
B. 10
C. 0
D. 有语法错误,不能执行
8. 在C语言中,用于直接中断所在层循环的语句是( )。

A. if语句
B. switch语句
C. continue语句
D. break语句
9. 设有定义:char s[ ]="China";,则数组s所占的存储空间是( )个字节。

A. 4
B. 5
C. 6
D.7
10. 设有定义:char s1[80]="Good",s2[80]="China";,则下列选项中能将字符串
"China"赋给数组s1的是( )。

A. s1="China";
B. strcpy(s1,s2);
C. s1=s2;
D. strcat(s1,s2);
11. 以下程序段的输出结果是( )。

int a[3][3]={1,2,3,4,5,6,7,8,9},i,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j || i+j==2) sum=sum+a[i][j];
printf("%d\n",sum);
A. 15
B. 25
C. 30
D. 45
12. 以下关于函数实参与形参的描述中,不正确的是( )。

A. 实参可以是常量、变量或表达式
B. 形参可以是常量、变量或表达式
C. 实参与形参的顺序必须一致
D. 实参与形参的个数必须相等
13. 有函数调用语句:f((a,b),c,(d,e));,则函数f中有( )个形参。

A.1
B.2
C.3
D.5
14. 以下程序的运行结果是( )。

int f(int x)
{ static int a=0;
a=a+x;
return a;
}
main()
{ int m=2,n;
n=f(m);
printf("%d,",n);
n=f(m);
第 1 页共5 页
printf("%d\n",n);
}
A. 2,2
B. 2,4
C. 4,2
D. 4,4
15. 设有宏定义 #define Y(x) x+2 ,则以下程序段的运行结果是( )。

int a=2,b=2,c=1;printf("%d",a*Y(b+c));
A. 7
B. 9
C. 10
D. 11
16. 设有定义:int a=3,*p=&a,**q=&p;,则下列表达式中值不为3的是( )。

A. a
B. *p
C. *q
D. **q
17. 设有定义:char s[ ]= "goodmorning",*p=s;,则执行语句printf("%s",p+7);
后,输出结果是( )。

A. goodmorning
B. good
C. n
D. ning
18. 设有以下定义,则下列叙述中不正确的是( )。

struct ex
{ int x;
float y;
char z;
}example;
A. struct是结构体类型的关键字
B. example是结构体类型名
C. x,y,z都是结构体成员名
D. struct ex是结构体类型
19. 设有以下定义,则对变量data中a成员的正确引用是( )。

struct sk
{ int a;
float b;
} data,*p=&data;
A. (*p).a
B. (*p).data.a
C. p->data.a
D. p.data.a
20. 执行以下程序段后,输出结果是( )。

union { int x;int y;int z;}a;
a.x=3;a.y=4;a.z=5;
printf("%d",a.x);
A. 3
B. 4
C. 5
D. 无法确定
二、填空题(每空1分,共20分)
1. C语言程序总是从【1】函数开始执行。

2. 一个算法包含的步骤不能是无限的,这指的是算法的【2】 (填算法的一个特点);
算法中的每一步骤都不应当是模棱两可的,这指的是算法的【3】 (填算法的另一
个特点)。

3. 用VC++ 6.0编辑好一个C语言源程序后,必须先将其翻译成机器语言程序,这个过
程称为【4】。

4. 字符串"a\x44\\abcd\101b"的长度是【5】。

5. 设有定义:int a=4;,则执行语句a+=a-=a*a;后,变量a的值为【6】。

6. 设有定义:int x,y;,则执行语句scanf("%d%d",&x,&y);,从键盘输入数据给变量
x和y时,分隔符可以是回车键、Tab键和【7】键。

7. 设有定义:char c=′\103′;,则执行语句printf("%d",c);后,输出结果是
【8】。

8. 表达式 (a=2) && (b=-2) 的值是【9】。

9. C语言中,一维数组元素的下标从【10】开始。

10. C语言中,若函数的类型与return语句中表达式的类型不一致,则以【11】 (填
“函数”或“表达式”)的类型为准。

第 2 页共5 页
11. 在32位C语言编译系统上,设有定义:struct { int i,j;double k;}x;,则表
达式siezof(x)的值是【12】;设有定义:union{ int a,b;double c;}ex;,
则表达式sizeof(ex)的值是【13】。

12. 表达式11&18的值为【14】;表达式11|18的值为【15】;表达式50>>2
的值为【16】。

13. C语言中,根据数据的组织形式,数据文件可分为文本文件和【17】。

14. C语言中,用于打开文件的库函数是【18】;在不关闭文件的情况下,能使文
件指针重新指向文件开头的库函数是【19】;能使文件指针随机指向文件中某个
位置的库函数是【20】 (以上3个空只需填写函数名)。

三、程序阅读题(请写出程序的运行结果。

每小题4分,共20分)
1. #include <stdio.h>
main( )
{ int a=8,b=8,c,d;
c=--a;d=b--;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
运行结果为。

2. #include <stdio.h>
main()
{ int x=0,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("%d,%d\n",a,b);
}
运行结果为。

3. #include <stdio.h>
int age(int n)
{ int a;
if(n>1) a=age(n-1)+3;
else a=10;
return a;
}
main( )
{ int x;
x=age(4);
printf("%d\n",x);
}
运行结果为。

4. #include <stdio.h>
main( )
{ char str[80]="ab12?cd78>*65",*p;
int num=0;
for(p=str;*p!=ˊ\0ˊ;p++)
if(*p>=ˊ0ˊ && *p<=ˊ9ˊ) num++;
第 3 页共5 页
printf("%d\n",num);
}
运行结果为。

5. #include <stdio.h>
typedef struct Student
{ char name[20];float score;}STU;
main( )
{ STU stu[3]={"Liubei",95,"Guanyu",90,"Caocao",99},*p;
float ave;
for(ave=0,p=stu;p<stu+3;p++)
ave=ave+p->score;
ave=ave/3;
printf("%.1f\n",ave);
}
运行结果为。

四、程序改错题(请改正程序中指定行的错误,要求将指定行改正后完整的写在答题纸上,
否则不得分。

每处错误2分,共10分)
1. 以下程序的功能是根据x的值,求y的值,y与x的函数关系如下:
#include <stdio.h>
main() { float x,y;
printf("请输入x的值:");
scanf("%d",&x); /*该行有错误 (1)*/
if(x=10) y=1; /*该行有错误 (2)*/
else y=3x-x/3; /*该行有错误 (3)*/
printf("y=%f\n",y);
}
2. 以下程序的功能是在main函数中输入10个数,调用sum函数求它们的和,并在
main函数中输出结果。

#include <stdio.h>
void sum(float b[ ]) /*该行有错误 (4)*/
{ float s=0;int i;
for(i=0;i<10;i++)
s=s+b[i];
return s;
}
main()
{ float a[10],s;int i;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
s=sum(a[10]); /*该行有错误 (5)*/
printf("这10个数的和是%f\n",s);
}
y= 1 (x=10)
3x-x/3 (x≠10)
第 4 页共5 页
五、程序设计题(每小题10分,共30分)
1. 求以下数列前20项之和并输出(只需写main函数)。

1, 2, 4, 8, 16,32, ……
2. 从键盘输入20个整数,求它们的最大值并输出(只需写main函数)。

3. 在main函数中输入两个整数,调用swap函数交换它们的值,并在main函数中
输出结果(要求用指针处理)。

第 5 页共5 页
第 1 页共2 页。

相关文档
最新文档