C语言试题第二学期.docx
- 文档编号:13711676
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:13
- 大小:19.84KB
C语言试题第二学期.docx
《C语言试题第二学期.docx》由会员分享,可在线阅读,更多相关《C语言试题第二学期.docx(13页珍藏版)》请在冰点文库上搜索。
C语言试题第二学期
重庆理工大学考试试卷
考试科目:
C语言试题(第二学期)A卷共4页
班次姓名学号成绩
题号
一
二
三
四
总分
得分
一.选择填空(选择一个正确答案,将其对应字母填在横线上)(20分)
1.C程序中,一个int整型数据在内存中占2个字节,则unsignedint型数据的取值范围为;
A:
0~255B:
0~65535C:
0~32767D:
0~2147483647
2.C语言中,正确的字符串表示是;
A:
‘\n’B:
“\n”C:
‘ABC’D:
‘1234’
3.若a是float型变量,b是int型变量,以下输入语句合法的是;
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.inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);其值分别为;
A:
0,1B:
2,1C:
2,-1D:
0,-1
5.intr=0123,表示是数;
A:
十进制;B:
字符;C:
十六进制;D:
八进制
6.在if(条件)语句执行时,当条件为时C语言认为是“真”;
A:
TRUE;B:
.T.C:
0D:
非零值
7.如果a[1]=3,执行b[2]=++a[1];c[3]=a[1]++;b[2]和c[3]的值是;
A:
2,2;B:
4,4;C:
3,3;D:
3,4
8.设inta,b,c;且a=10;b=4;a/=b;则表达式(a/b?
b+a:
b-a)之值是;
A:
0.5B:
6;C:
2;D:
-2
9.对于int*p,arry[10];正确的赋值语句是__;
A:
p=arry;B:
*p=&arry;C:
p=&arry;D:
*p=&arry[9];
10.设intx,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是;
A:
4B:
16C:
32D:
52
11.对于inta[][3]={1,2,3,4,5,6,7,8,9,10}说明语句,
且有:
数据元素a[1][2]+a[3][1]的值为_________;
A:
15B:
16C:
8D:
6
12.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的正确结果值是___49_____
A:
95B:
96C:
97D:
98
13.已知inti=j=2;char*a="abcdefg",c;
执行c=*(a=a+3);c的值是__________。
A.‘b’B:
‘c’C:
‘d’D:
‘e’
14.找出死循环程序段是
A:
inti=150;B:
for(i=0;i<=100;)
while(++i)++i;
{i=i%100+1;
if(i>100)break;
}
C:
intk=0;D:
ints=25;
dowhile(s/2)
{k+=2/2;s--;
}while(k>=10);
15.阅读下列程序,结果是
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("###\n");
A:
语法有错误,不能编译B:
输出***C:
通过编译,但不能连接D:
输出###
16.For(;3;);代表的意义是;
A:
死循环B:
不循环C:
循环3次D:
语法错误
17.对于表达式53/2&&!
0和!
(15>3||5<6-8)的逻辑值,分别是;
A:
0,1B:
1,0C:
0,0;D:
1,1
18.在C语言中,要求运算数必须是整数的运算符是
A:
++B:
/C:
%D:
!
=
19.设charw;intx;floaty;doublez;表达式w*x+z-y的值的数据类型为
A:
charB:
intC:
floatD:
double
20.有以下程序段
intx=3
do
{printf("%d",x-=2);
}while(!
(--x));
其输出结果是
A:
1B:
1–2C:
30D:
死循环
二.读下列程序,给出程序的运行结果(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);
}
输入h,运行结果为:
__h____
输入G,运行结果为:
__g____
4.
main(){inta[4][3]={1,11,111,1111,2,22,222,2222,3,33,333,3333};int*p1=a,*p2=a+3;printf("%d,%d\n",*p1,*p2);
printf("%d,%d\n",*(++p2),a[2][2]);
printf("%d,%d\n",*p2,p2-p1);
}
输出为:
1,1111,2,3,2,4
5.
main()
{inti;
char*a=“computer”,b[10];
for(i=0,a++;i<5;i++,++a)
b[i]=*a;
b[i]='\0';
printf(“b=%s”,b);
}
输出为:
b=omput
6.
#include"stdio.h"
doublefun(intn)
{doubleresult=1.0;
while(n>1&&n<170)
result*=n--;
returnresult;
}
main()
{intn;
clrscr();
printf("Enteraninteger:
");
scanf("%d",&n);
printf("\n\n%d!
=%lg\n\n",n,fun(n));
}
该子函数的功能:
累乘,输入4结果为:
4,24。
三.程序填空(30分)
1.打印如下图案,选择合适的句子填入该程序空格中。
*
***
*****
*******
*****
***
*
#include
voida(inti)
{intj,k;
for(j=0;j<7-i;j++)printf(“”);
for(k=0;__k<2i+1______;k++)printf(“*”);
printf(“\n”);
}
main()
{inti;
for(i=0;i<3;i++)__a[i]_______;
for(i=3;i>=0;i--)___a[i]______;
}
2.用选择法对数组为10个整数进行由大到小排序,选择合适的句子填入该空格中。
main()
{inti,a[15];
voidsort(intarray[],intn);
for(i=0;i<10;i++)scanf("%d",&a[i]);
sort(a,10);
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; } } 3.将两个字符串连接起来的程序,选择合适的句子填入该空格中。 main() {chara[150],b[50]; inti=0;j=0; scanf("%s",a); scanf("%s",b); while(a[i]! ='\0')i++; while(b[j]! ='\0')a[i++]=b[j++]; a[i]='\0'; } 4.下面程序的功能是输入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[j]=a[k];_________ printf(“\nThepositionofminis: %3d\n”,k); printf(“Thepositionofmaxis: %3d\n”,j); for(i=1;i<5;i++)printf(“%5d\n”,a[i]); } 5.一个函数fun的功能是: 将一个数字字符串转换为一个整数。 例如,若输入字符串"-1234",则函数把它转换为整数值–1234,选择合适的句子填入该程序空格中。 #include #include main()/*主函数*/ {chars[6]; longn; longfun(char*); printf("Enterastring: \n"); gets(s); =fun(s); printf("%ld\n",n); } fun(char) {longnn=0;intss=1; if((*p)=='-'){p++;ss=-1;} if((*p)=='+')p++; while(*p) nn=nn*10-48+(*p++); return(nn*ss); } 四.编写程序(20分) 1.在100个整数中,统计能被3和5除尽的个数。 (要求100个整数中放在数组中) 2.编写一个求n! 子函数,在主函数中从键盘输入x、y值; 当x! -y! >0时,输出x! 的值,x! -y! <0时,输出y! 的值。 答题卷 班次姓名学号成绩 一.选择填空(20分,每空1分) 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 二.读下列程序,给出程序的运行结果(30分) 1: 2: 3: 4: 5: 6: 三.程序填空(30分) 1. 2. 3. 4. 5. 四.编写程序(20分) C语言试题(第二学期) 答案: 一.选择填空(20分,每空1分) 1: B2: B3: B4: B5: D 6: D7: B8: C9: A10: C 11: D12: D13: C14: A15: D 16: A17: B18: C19: D20: D 二.读下列程序,给出程序的运行结果(30分,每题5分) 1: m1=6n1=1m2=6n2=8 2: a=10 3: h结果h G结果g 4: 1,1111 2,3 2,4 5: omput 6: 累乘24 三.程序填空(30分,每题6分) 1.k<2*i+1 a[i] a[i] 2.a,10>j 3.i++b[i]j++ 4.j=i k=i a[j]=maxa[k]=min 5.long*pn 四.编写程序(20分) 1.在100个整数中,统计能被3和5除尽的个数。 (要求100个整数中放在数组中) #include voidmain() { inta[11],i,n=0; for(i=1;i<10;i++) {scanf("%d",&a[i]); if(a[i]%3==0&&a[i]%5==0) n++;} printf("%d\n",n); } 2.在两题中,选择其中一题。 (1)编写一个求n! 子函数,在主函数中从键盘输入x、y值; 当x! -y! >0时,输出x! 的值,x! -y! <0时,输出y! 的值。 #include voidmain() { longfac(intn); longs; intx,y; scanf("%d%d",&x,&y); if(fac(x) elses=fac(y); printf("%ld",s); } longfac(intn) { longf; if(n==0)f=1; elsef=n*fac(n-1); return(f); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 第二 学期
![提示](https://static.bingdoc.com/images/bang_tan.gif)