C语言试题第一学期及答案.docx
- 文档编号:29050922
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:21.72KB
C语言试题第一学期及答案.docx
《C语言试题第一学期及答案.docx》由会员分享,可在线阅读,更多相关《C语言试题第一学期及答案.docx(17页珍藏版)》请在冰豆网上搜索。
C语言试题第一学期及答案
重庆理工大学考试试卷
考试科目:
高级语言程序设计(C语言)(第一学期)A卷共页
班次姓名学号成绩
注:
答题做在后面答题试卷上。
一.选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)
1.C程序中,unsignedintx;定义的变量取值范围为B;
A:
0~255B:
0~65535C:
0~32767D:
0~2147483647
2.C语言中,正确的字符与字符串表示方式为B;
A:
chara=‘a’,b=“abc”;B:
chara=‘a’,b[]=“abc”;
A:
chara=“a”,b[]=“abc”;B:
chara=‘a’,b[2]=“abc”;
3.若a是float型变量,b是int型变量,以下输入语句合法的是B;
A:
scanf(“%6.2f%f”,&a,&b)B:
scanf(“%8.1f%d”,&a,&b)
C:
scanf(“%6.2d%d”,&a,&d)D:
scanf(“%6.2f%c”,&a,&d)
4.如果i=1,执行j=++i;k=i++;其j、i和k的值是D;
A:
2,2,2;B:
1,2,3;C:
1,1,1;D:
2,3,2
5.在if(条件)语句执行时,当条件为D时C语言认为是“真”;
A:
TRUE;B:
.T.C:
0D:
非零值
6.如果inta[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为D;
A:
2B:
3C:
4D:
5
7.设inta,b,c;且a=10;b=4;a/=b;则表达式(a/b?
b+a:
b-a)之值是C;
A:
0.5B:
6;C:
2;D:
-2
8.对于inta[10];正确的赋值语句是__A;
A:
*(a+2)=4;B:
a=6;C:
a+2=4;D:
*(a+15)=4;
9.设intx,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是C;
A:
4B:
16C:
32D:
52
10.对于inta[][3]={1,2,3,4,5,6,7,8,9,10}说明语句,
且有:
数据元素a[1][2]+a[3][1]的值为____D_____;
A:
15B:
16C:
8D:
6
11.intn=97;
switch(n/10-4)
{case2:
n=n+1;
case3:
n=n*2;
case5:
n=n-2;
case7:
n=n+3;break;
default:
n=n/2;
}
n的正确结果值是____D____
A:
95B:
96C:
97D:
98
12.已知inti=j=2;char*a="abcdefg",c;
执行c=*(a=a+3);c的值是____C______。
A.‘b’B:
‘c’C:
‘d’D:
‘e’
?
13.阅读下列程序,结果是C
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("###\n");
A:
语法有错误,不能编译B:
输出***C:
通过编译,但不能连接D:
输出###
14.for(;3;);代表的意义是A;
A:
死循环B:
不循环C:
循环3次D:
语法错误
15.对于表达式53/2&&!
0和!
(15>3||5<6-8)的逻辑值,分别是B;
A:
0,1B:
1,0C:
0,0;D:
1,1
16.有时需要使几种不同类型的变量存放到在一起,形成一个变量,这种变量,称为A;
A:
结构体变量B:
字符变量C:
整型变量D:
实数变量
17.设charw;intx;floaty;doublez;表达式w*x+z-y的值的数据类型为D
A:
charB:
intC:
floatD:
double
18.有以下程序段C
FILE*fp;
fp=fopen(“a1”,“r”);
其表示为
A:
定义了一个普通指针,函数值给指针赋值。
B:
定义了一个文件a1
C:
打开一个文件,该文件可读可写D:
打开一个文件,该文件只能读不能写
?
19.下面对数组的定义正确的是A
A:
intn=10;intarray[n];B:
intarray(10);
C:
intn;scanf(“%d”,&n);intarray[n];
D:
intn;intarray[n];scanf(“%s”,array);
20.下面各语句行中,能正确进行赋字符串操作的语句行是C
A:
chars[4][5]="abcd","123";B:
chars[5]={‘a’,‘b’,‘c’,‘e’,‘f’};
C:
char*s;s="abcd";D:
chars[5];s="abcd";
21.在一个C语言程序构成中,较完整的描述是D
A:
由主程序与子程序构成B:
由多个主函数与多个子函数构成
C:
由主函数与子函数构成D:
由一个主函数与多个子函数构成
22.C语言在程序开始执行时,其正确的描述是B
A:
由编写程序语句的顺序格式执行B:
在主函数main()开始处执行
C:
在第一个子函数处执行D:
由人随机选择执行
*23.下列有关函数错误的描述是A
A:
C语言中允许函数嵌套定义B:
C语言中允许函数递归调用
C:
调用函数时,实参与形参的个数、类型需完全一致
D:
C语言函数的缺省数据类型是int类型
*24.在C语言中,函数的返回值的类型是由D
A:
在程序编译时决定B:
由调用该函数的主调函数所决定
C:
由return的表达式的类型所决定D:
由定义该函数时指定的函数类型所决定
25.当调用函数时,如果实参是一个数组名,则向函数传送的是B
A:
数组的首元素B:
数组的首地址
C:
数组每个元素的地址D:
数组每个元素中的值
二.读下列程序,给出程序的运行结果(30分)
1.main()
{inti,j,m,n;
i=5;j=6;n=10;
m=++i;n/=j++;
printf(“m1=%dn1=%d”,m,n);
m=i++;n=++j;
printf(“m2=%dn2=%d”,m,n);
}
结果:
m1=6n1=1m2=6n2=8
2.main()
{inta[20],b=1;
for(a[0]=b;b<=10;b+=2)
{a[b]=b;
if(b>7)break;
b++;}
printf(“a=%d”,a[b]);
}
结果:
a=10
3.
#include“stdio.h”
main()
{charch;
scanf("%c",&ch);
if(ch>=’B’&&ch<=’M’)putchar(ch+32);
elseputchar(ch);
}
输入M,运行结果为:
_m____;输入b,运行结果为:
__b___
4.
main()
{inta[3][3]={1,2,3,4,5,6,7,8,9};
int*p1=&a[1][2],*p2=a+2;
printf("%d,%d\n",*p1,*p2);
printf("%d,%d\n",*(++p2),a[2][2]);
}
输出为:
5.
main()
{inti;
char*p,b[10];
p=“abcde”;
for(i=0;i<3;i++)
{b[i]=*p;p++;}
b[i]='\0';
printf(“%s”,b);
}
输出为:
b=abc
6.
#include"stdio.h"
intfun(intx)
{inty=0;
staticz=3;
y++;
z++;
return(x+y+z);
}
main()
{inta=2,i;
for(i=0;i<3;i++);
printf("\t%d",fun(a);
}
*结果为:
7,8,9。
三.填空题(25分)
1.如果p是一个指针,那么*&p表示的含义是指针P所指向的内容,而&*p表示的含义是指针P所指向的内容的地址。
2.已知数组s为一有8个单元的整型数组,下面的语句的语句试图求出这8个单元的平均值,并用ave保存这个值;请补充完整下面的语句。
intj,s[]={1,2,3,4,5,6,7,8},sum=0;
for(j=0;j<8;j++)sum=s[i]+sum;
ave=sum/8;
3.变量在程序使用中,其作用域可分为全局变量和局部变量。
4.打印如下图案,选择合适的句子填入该程序空格中。
0
000
00000
0000000
00000
000
0
#include
voida(inti)
{intj,k;
for(j=0;j<7-i;j++)printf(“”);
for(k=0;__k<2i+1______;k++)printf(“0”);
printf(“\n”);
}
main()
{inti;
for(i=0;i<3;i++)__a(i)_______;
for(i=3;i>=0;i--)__a(i)_______;
}
5.用选择法对数组为n个整数进行由大到小排序,选择合适的句子填入该空格中。
#definN100
main()
{inti,a[N],n;
scanf("%d",&n);
voidsort(intarray[],intn);
for(i=0;i sort(a,n); printf("thesortedarray: \n); for(i=0;i<15;i++)printf("%d",a[i]); } voidsort(intarray[],intn) {inti,j,k,t; for(i=0;i {k=i; for(j=i+1;j if(array[j]>array[k]k=j; t=array[k];array[k]=array[i];array[i]=t; } } 6.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数,选择合适的句子填入该程序空格中。 main() {inta[5],max,min,i,j,k; for(i=0;i<5;i++) scanf(“%d”,&a[i]); min=a[0]; for(i=1;i<5;i++) if(a[i] max=a[0]; for(i=1;i<5;i++) if(a[i]>max){max=a[i];___i=j_____;} _a[k]=max,a[j]=min;__________ printf(“\nThepositionofminis: %3d\n”,k); printf(“Thepositionofmaxis: %3d\n”,j); for(i=1;i<5;i++)printf(“%5d\n”,a[i]); } 四.编写程序(20分) 1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。 #include voidmain() { inta[10],b[10],i,j=0,k=0; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(a[i]%2==0) { b[j]=a[i]; j++; k++; } for(j=0;j printf("%d",b[j]); printf("\n"); } 2.在两题中,可选择其中一题。 (1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和; #include voidmain() { ints(intx,inty); inti,p=0; for(i=1;i<=10;i++) if(i%2==0) p=s(p,i); printf("%d",p); } ints(intx,inty) { inta; a=x+y; return(a); } (2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。 #include voidmain() { intsum(inta[][100],intn); inta[100][100]; inti,j,f,n; scanf("%d",&n); printf("pleaseinput%d*%dintegers: ",n,n); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); f=sum(a,n); printf("%d",f); printf("\n"); } intsum(inta[][100],intn) { inti,sum=0,s1=0,s2=0; for(i=0;i {s1=s1+a[i][i]; s2=s2+a[i][n-i-1];} sum=sum+s1+s2; return(sum); } 高级语言程序设计(C语言)答题卷 班次姓名学号成绩 题号 一 二 三 四 总分 得分 评阅人 得分 一.选择填空(25分,每空1分) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 评阅人 得分 二.读下列程序,给出程序的运行结果(30分) 1: 2: 3: 4: 5: 6: 评阅人 得分 三.程序填空(25分) 1. 2. 3.4. 5.6. 评阅人 得分 四.编写程序(20分) C语言试题(2003~2004第一学期)A卷 答案: 一.选择填空(25分,每空1分) 1: B2: B3: B4: D5: D 6: D7: C8: A9: C10: D 11: D12: C13: C14: A15: B 16: A17: D18: D19: A20: C 21: D22: B23: A24: D25: B 二.读下列程序,给出程序的运行结果(30分,每题5分) 1: m1=6n1=1m2=6n2=8 2: a=10 3: M结果m b结果b 4: 6,7 8,9 5: abc 6: 789 三.填空题(25分) 1.指针p所指向的内容p指针所指向的内容的地址(3分) 2.0j=0j<8sum=s[i]+sum;sum(5分) 3.全局变量局部变量(2分) 4.k<2*i+1 a[i] a[i] 5.nintarray[]j 6.j=i k=i a[j]=maxa[k]=min 五.编写程序(20分) 四.编写程序(20分) 1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。 #include voidmain() { inta[10],b[10],i,j=0,k=0; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(a[i]%2==0) { b[j]=a[i]; j++; k++; } for(j=0;j printf("%d",b[j]); printf("\n"); } 2.在两题中,可选择其中一题。 (1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和; #include voidmain() { ints(intx,inty); inti,p=0; for(i=1;i<=10;i++) if(i%2==0) p=s(p,i); printf("%d",p); } ints(intx,inty) { inta; a=x+y; return(a); } (2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。 #include voidmain() { intsum(inta[][100],intn); inta[100][100]; inti,j,f,n; scanf("%d",&n); printf("pleaseinput%d*%dintegers: ",n,n); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); f=sum(a,n); printf("%d",f); printf("\n"); } intsum(inta[][100],intn) { inti,sum=0,s1=0,s2=0; for(i=0;i {s1=s1+a[i][i]; s2=s2+a[i][n-i-1];} sum=sum+s1+s2; return(sum);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 第一 学期 答案