C语言程序设计试卷及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言程序设计 笔试试题
题号 一 二 三 四 五 六 笔试(70%)
综合 (30%)
总分
分数
试卷说明:
1. 笔试卷面总分100分,取卷面成绩的70%计入总分;
2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;
3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;
4. 答题时间120分钟。
一、单项选择题。将正确答案填入下面框中。
(本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案
1. 有以下程序 main() {int a=1,b=0; if(!a) b++;
else if(a==0) if(a) b+=2; else b+=3;
printf(“%d\n ”,b); }则程序输出( A )。 A) 0
B) 1
C) 2
D) 3
2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。
A) a%(int)(x-y) B) a=x!=y
C) (a*y)%b D) y=x+y=x
3. 若有定义 int (*p)[3];则下列说法正确的是( C )。
号
学
名
姓
注意行为规范 遵守考试纪律
A) 定义了基类型为int的三个指针变量
B) 定义了一个名为*pt、具有三个元素的整型数值
C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
D) 定义了基类型为int的具有三个元素的整型数组
4. 有以下程序段
main()
{ int x=10;
while(x--);
printf("x=%d\n",x);}
则最后的输出结果是:( B)。
A) x=0 B) x= -1 C) x=1 D)while构成无限循环
5. 有以下程序:
int fun()
{static int x=1;
x *= 2;
return x;}
main( )
{ int i,s=1 ;
for(i=1 ;i<=2 ;i++) s=fun() ;
printf(“%d\n ”,s) ;}
执行后的输出结果为( D)。
A) 0 B) 1 C) 8 D) 4
6. void main( ){
int k=011;
printf("%d\n",k++); }
}程序输出结果是( D )
A)12 B) 11 C) 10 D) 9
7. 以下C语言标识符中,不合法的是( C)。
A) _2 B) a_b C) a--b D) AaBc
8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。
A) float B) int C) long D) double
9. 以下程序段运行结果是( B)。
enum weekday{aa,bb=2,cc,dd,ee}week=ee;
printf(“%d\n“,week);
A) 4 B) 5 C) ee D) 0
10. 以下对C语言函数的描述中,不正确的是( B )。
A) 不同函数中可以使用相同名字变量B) 函数可以嵌套定义
C) 函数可以没有返回值D) 程序由函数组成
11. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是( D )。
A) *p B) *x C) *(p+1) D) x[5]
12. 以下程序段运行结果是( B )。
int a=6;
printf(“%d\n“,a>>1);
A) 12 B) 3 C) 6 D) 1
13. 若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是( B )。
A) scanf(“%lf%lf”,x,y); B) scanf(“%lf,%lf”,px,py);
C) scanf(“%f%f”,&x,&y); D) scanf(“%f%f”,x,y);
14. 以下程序运行结果是( D )。
char str[ ]=“abc“;
printf(“%d, %d \n“,strlen(str),sizeof(str));
A)6,3 B) 3,3 C) 10,10 D) 3,10
15. 以下程序段运行结果是( A )。
#define f(x) x*x*x
main( )
{ int a=1,b,c;
b=f(a+1);c=f((a+1));
printf(“%d,%d\n“,b,c);}
A) 4,8 B) 8,4 C) 8,8 D) 4,4
16. 有以下程序:
main()
{FILE *f;
f=fopen(“fa.txt“,“w“);
fprintf(f,“day“);
fclose(f);}
若文本文件fa.txt中原有内容为:hello,则运行以上程序后,文件fa.txt中的内容为( A )。
A)day B) helloday C) daylo D)dayhello
二、填空题。请按序号把答案填入下面框中,
不允许出框线。(本题20分,每空2分)
题号答案题号答案
1 a[row][col] 6 k<=n
2 x%10或x%100%10 7 k++
3 23hE45a8 m%i==0&&n%i==0
4 fun() 9 p=p->next
5 m++ 10 s[i]或’\0’
1. 以下fun函数功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回。
int fun(int a[N][M])
{ int i,j,row=0,col=0;
for(i=0;i for(j=0;j if(a[i][j]>a[row][col]){row=i;col=j;} return( 【1】);} 2. 以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位,百位的顺序拆分输出。 main() { int x=123; printf(“%d-%d-%d\n”, 【2】,x/10%10,x/100);} 3. 下列程序运行时,若输入23he45a<回车>,输出结果是【3】 #include main() { char a=0;ch; while((ch=getchar())!=’\n’)