计通学院c语言真题带答案.docx
- 文档编号:6484551
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:14
- 大小:21.42KB
计通学院c语言真题带答案.docx
《计通学院c语言真题带答案.docx》由会员分享,可在线阅读,更多相关《计通学院c语言真题带答案.docx(14页珍藏版)》请在冰豆网上搜索。
计通学院c语言真题带答案
题号
一
二
三
四
五
六
七
八
九
十
总分
统分人签名
题分
36
15
21
28
100
得分
1、本试卷共4页,试卷如有缺页或破损,请立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
3、答案全部做在答题纸上,并写在密封线内和纸卷正面,否则不记分。
一、单选题。
从供选择的答案中选出正确答案。
(每题1.5分,共36分)
1、以下定义和语句:
charcl='b',c2='e';
printf(″%d,%c\n″,c2-c1,c2-'a'+'A');
则输出结果是:
()
A.2,MB.3,E
C.2,ED.输出项与对应的格式控制不一致,输出结果不确定
2、若有两条语句
staticcharx[]="abcde";
staticchary[]={'a','b','c','d','e'};
则下列语法中正确的是()
A.x数组和y数组的长度相同B.x数组的长度小于y数组的长度
C.x数组的长度大于y数组的长度D.x数组等价于y数组
3、以下程序的输出结果是()
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
A.9B.6C.36D.18
4、在C语言中的if语句中,用作判断的表达式为()
A.关系表达式B.逻辑表达式C.算数表达式D.任意表达式
5、执行下面程序中输出语句后,a的值是()
main()
{inta;
printf("%d\n",(a=3*5,a*4,a+5));}
A.65B.20C.15D.10
6、合法的数组定义是()
A.staticinta[]=″string″;B.staticinta[5]={0,1,2,3,4,5}
C.staticchara=″string″;D.staticchara[]={0,1,2,3,4,5};
7、C语言可执行程序的开始执行点是()
A.程序中的一条可执行语句B.程序中第一个函数
C.程序中的main函数D.包含文件中的第一个函数
8、判断两个字符串S1和S2相等的正确语句是()
A.if(S1=S2)B.if(S1==S2)
C.if(strcpy(S1,S2))D.if(strcmp(S1,S2)==0)
9、若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是()
A.(exp==0)B.(exp!
=0)C.(exp==1)D.(exp!
=1)
10、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()
A.EOFB.0C.非零值D.NULL
11、下面程序段的运行结果是()
char*s="abcde";
s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果
12、假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是()
A.3B.6C.10D.20
13、不合法的main函数命令行参数表示形式是()
A.main(inta,char*c[])B.main(intarc,char**arv)
C.main(intargc,char*argv)D.main(intargc,char*argv[])
14、若有以下定义和语句:
doubler=99,*p=&r;
*p=r;
则以下正确的叙述是()
A.两处的*p含义相同,都说明给指针变量p赋值
B.在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
C.语句"*p=r;"把变量r的值赋给指针变量p
D.语句"*p=r;"取变量r的值放回r中
15、已知intj,i=1;,执行语句j=-i++;后,j的值是( )。
A.1B.2C.-1D.-2
16、设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是()
A.while循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
17、定义如下变量:
intn=10
则下列循环的输出结果是()
while(n>7)
{n--;
printf("%d\n",n);
}
A.1098B.987C.10987D.9876
18、以下叙述中不正确的是( )
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
19、能正确表示逻辑关系:
"a≥=10或a≤0"的C语言表达式是()
A.a>=10ora<=0B.a>=0||a<=10
C.a>=10&&a<=0D.a<=0||a>=10
20、下列程序的输出结果是()
main()
{doubled=3.2;
intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
21、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的else总是与()组成配对关系。
A.其上面距它最近的,并且没有其他else与其配对的if相配对
B.在同一行上的if
C.缩排位置相同的if
D.在其之前未配对的if
22、若有说明inta[3][4];则a数组元素的非法引用是()
A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]
23、C程序中,若函数调用采用传值方式,则( )
A.实参和虚参各自占有存储单元B.实参和虚参共享存储单元
C.由用户指定D.由计算机随机确定
24、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()
main()
{int*p,*q,a,b;
p=&a;
printf("inputa:
");
scanf("%d",*p);
}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
二、填空题。
(每空1分,共15分)
1、一个函数一般由两部分组成:
它们分别是()和()。
2、把数组元素按顺序存放的过程称为().
3、计算表达式8.0*(1/2)的值是().
4、当a=5,b=4,c=2时,表达式a>b!
=c的值是().
5、若有定义:
intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为()
(x+y)%2+(int)a/(int)b
6、使用两个下标的数组称为()数组。
7、在C语言中,逻辑运算符的优先级别从高到低依次是()
8、设a、b、c为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b++)-(++c);后,a的值是()
9、在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为();一个shortint型数据在内存中所占的字节数为();一个float型数据在内存中所占的字节数为()
10、C语言中最简单的数据类型是()、()、()。
三、程序分析题(每小题1.5分,共21分)
1、函数fun的功能是:
使一个字符串按逆序存放,请填空
voidfun(charstr[])
{charm;inti,j;
for(i=0,j=strlen(str);___________;i++,j--)
{m=str[i];
str[i]=___________;
str[j-1]=m;
}
printf("%s\n",str);
}
2、写出该程序运行的结果.
fun(intp)
{intd=5;
d+=p++;
printf("%d,",d);
}
main()
{inta=3;
intd=1;
fun(a);
d+=a++;
printf("%d\n",d);}
3、使以下程序段输出10个整数,请填入一个整数。
for(i=0;i<=____________;printf("%d\n",i+=2))
4、main()
{intsum=0,i;
scanf("%d",&i);
while(i<=10)
{sum=sum+i;
i++;}
printf("%d",sum);}
输入1
输出_______________
5、把100-200之间的不能被3整除的数输出:
main()
{intn;
__________________;
{if(n%3==0)
___________________;
printf("%d",n);
}}
6、求(1+2!
+……20!
)
程序如下;
main
{floats=0,t=1;
intn;
for(n=1;n<=20;n++)
{
(1)__________________;
(2)_________________;}
printf("1+2!
+……20!
=%e\n",s);}
7、#include
main()
{inti=0,j=0,a=6;
if((++i>0)||(j++>0))a++;
printf("i=%d,j=%d,a=%d\n",i,j,a);}
结果:
___________________
8、以下程序的输出结果是________________。
main()
{inta=0
a+=(a=8);
printf("%d\n",a);
}
9、下列程序段的输出结果是________________。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",b);
}
10、函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include
doublepi(longn)
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+_________________;
return(sqrt(6*s));
}
请写出以下程序的输出结果__________________。
#include
main()
{
inta=100:
if(a>100)
printf(”%d\n”,a>100);
else
printf(”%d\n”,a<=100);}
12、若变量已正确定义,以下语句段的输出结果是_________________。
x=0;y=2;z=3;
switch(x)
{
caseO:
switch(y==2)
{
case1:
printf(”*”);break;
case2:
printf(”%”);break;
}
case1:
switch(z)
{
case1:
printf(”$”);
case2tprintf(”$”);break;
default:
printf(”#”);
}
}
13、若从键盘输入58,则以下程序输出的结果是________。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
14、下面程序段的运行结果是________
x=2:
do{printf(”*”);x--;}while(x);
四、程序设计题(每小题7分,共28分)
1、回文数是指正读和反读都一样的正整数。
例如3773是回文数。
求出[1000,9999]之间的回文数是偶数的最大回文数
2、一个14*14方阵A(i,j),其每个元素的值为该元素下标的平方和,求出该矩阵所有对角线元素的累加和(注:
i,j从1到14)。
3、写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。
4、有5个学生,每个学生的数据包括学号、姓名、2门课程的成绩,从键盘输入5个学生数据,要求输出5个学生2门课程总平均成绩。
面向过程程序设计(C语言)参考答案及评分标准(A卷)
适用专业年级:
计06级,通信06级
一、单选题。
从供选择的答案中选出正确答案。
(每题1.5分,共36分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
B
C
C
D
B
D
C
D
B
C
C
D
C
D
C
16
17
18
19
20
21
22
23
24
C
B
D
D
C
A
D
A
B
二、填空题。
(每空1分,共15分)
1、函数说明部分,函数体
2、排序
3、0
4、1
5、1
6、二维
7、!
&&||
8、28
9、1,2,4
10、整型,实型,字符型
注:
1和10题顺序任意
三、程序分析题(每小题1.5分,共21分)
1、i<=j或i 2、8,4 3、18 4、55 5、for(n=100;n<=200;n++),continue 6、t=t*n,s=s+t 7、i=1,j=0,a=7 8、16 9、Hello 10、1.0/(i*i) 11、1 12、*# 13、585858 14、** 四、程序设计题(每小题7分,共28分,答案不唯一,仅供参考) 1、 main() { inta1,b1,a2,b2,i,hws; for(i=1000;i<=9999;i++) { a1=i/1000; b1=i/100-a1*10; b2=i/10-a1*100-b1*10; a2=i%10; if((a1==a2)&&(b1==b2)&&(i%2==0)) hws=i; } printf("所求的最大回文数为: %d",hws); } 2、 main() { longa[15][15]; longi,j,sum=0; for(i=1;i<15;i++) for(j=1;j<15;j++) a[i][j]=i*i+j*j; for(i=1;i<15;i++) sum=sum+a[i][i]; printf("%ld",sum); } 3、 #include #include voidmain() {inti,m; scanf(“%d”,&m); fun(m); } voidfun(intm); {inti,k; k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; ifi>kprintf(“%disaprimenumber\n”); elseprintf(“%disnotaprimenumber\n”); } 4、 #include #include Main { structstudent {charno[5]; charname[8]; intscore[2]; } studentrecord[5]; inti,sum=0,j,ave; printf(“Pleaseinput5studentsscore: ”); for(i=0;i<5;i++) {printf(“Pleaseinput%dnumber: ”,i+1); printf(“enternumber: ”);scanf(“%s”,record[i].no); printf(“entername: ”);scanf(“%s”,record[i].name); for(j=0;j<2;j++) {printf(“%s”,subject[j]); scanf(“%d”,&record[i].score[j]); sum=sum+record[i].score[j] } } ave=sum/10; printf(“totalaveragescoreis: %d”,ave); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通学 语言 真题带 答案