10套大学计算机C语言期末考试复习试题及答案.docx
- 文档编号:30826243
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:55
- 大小:43.42KB
10套大学计算机C语言期末考试复习试题及答案.docx
《10套大学计算机C语言期末考试复习试题及答案.docx》由会员分享,可在线阅读,更多相关《10套大学计算机C语言期末考试复习试题及答案.docx(55页珍藏版)》请在冰豆网上搜索。
10套大学计算机C语言期末考试复习试题及答案
二、单项选择共30题(共计30分)
1.执行下面程序后,输出结果是(A)。
main()
{a=45,b=27,c=0;c=max(a,b);printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;elsez=y;return(z);
}
A:
45B:
27C:
18D:
72
第2题下列数组说明中,正确的是(A)。
A:
intarray[][4];B:
intarray[]Q;
C:
intarray[][][5];D:
intarray[3][];
第3题下面有关for循环的正确描述是(D)
A:
for循环只能用于循环次数已经确定的情况B:
for循环是先执行循环体语句,后判断表达式C:
在for循环中,不能用break语句跳出循环体D:
for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来第4题以下程序的输出结果是(D).main()
{inti,j,k,a=3,b=2;i=(—a==b++)?
—ai++b;j=a++;k=b;
printf("i=%d,j=%d,k=%d\n'i,j,k);
}
A:
i=2,j=1,k=3B:
i=1,j=1,k=2C:
i=4,j=2,k=4
D:
i=1,j=1,k=3
第5题若有下列定义,则对a数组元素地址的正确引用是(C).inta[5],*p=a;
A:
*(p+5)B:
*p+2C:
*(a+2)D:
*&a[5]
第6题下列选项中正确的语句组是(D)。
A:
char
s[8];
s={"Beijing”};
Bichar
*s;
s={"Beijing”};
Crchar
s[8];
s="Beijing";
D:
char
*s;
s="Beijing";
第7题若变景a,i己正确定义,且i己正确赋值,合法的语句是(C)
A:
a=int(i);B:
a==1C:
++i;D:
a=a++=5;
第8题以下字符中不是转义字符的是(C)。
A:
\a.B:
\b,C:
\c,D:
'\V
第9题下列定义不正确的是(C)。
A:
#definePI3.141592
B:
#defineS345
C:
intmax(x,y);intx,y;{}
D:
staticcharc;
第10题charh,*s=&h;可将字符H通过指针存入变景h中的语句是(B).
A:
*s=H;B:
*s=,H,;
C:
s=H;D:
s='H'
第11题(1.0分)题号:
690设char型变景x中的值为10100111,则表达式(2+x)A(~3)的值是()。
A:
10101001B:
10101000
C:
11111101D:
01010101
答案:
D
第12题(1.0分)题号:
2381设以下变量均为int类型,表达式的值不为7的是()A:
x=y=6,x+y,x+1B:
x=y=6,x+y,y+1
C:
x=6,x+1,y=6,x+yD:
y=6,y+1,x=y,x+1
答案:
C
第13题(1.0分)题号:
3124
若有说明inta[3][4];则对a数组元素的正确引用是()•
A:
a[2][4]B:
a[1,3]
C:
a[1+1][0]D:
a
(2)
(1)
答案:
C
第14题(1.0分)题号:
679在C语言中,形参的缺省存储类是()。
A:
autoB:
register
CistaticD:
extern
答案:
A
第15题(1.0分)题号:
1343
C语言源程序的基本单位是A:
过程B:
函数
C:
子程序D:
标识符
答案:
B
第16题(1.0分)题号:
3023A:
1990B:
1992
C语言程序中必须有的函数是〇.C:
1996D:
2000
A:
#include"stdio.h"B:
main
C:
printfDiscanf答案:
A
第23题(1.0分)题号:
177
答案:
B
第17题(1.0分)题号:
3228
有定义:
int3=8^=5,〇;,执行语句〇=8^+0.4;后,〇的
值为〇
A:
1.4B:
1C:
2.0D:
2
答案:
B
第18题(1.0分)题号:
640以下对二维数组a的正确说明是()。
A:
inta[3][]B:
floata(3,4)
Crdoublea[1][4]D:
floata(3)(4)
答案:
C
第19题(1.0分)题号:
2884
以下标识符中,不能作为合法的C用户定义标识符的是().
AianswerB:
toC:
signedD:
_if
答案:
C
第20题(1.0分)题号:
652
在C语言中,引用数组元素时,苏数组下标的数据类型允许是()。
A:
整型常景B:
整型表达式C:
整型常最或整型表达式D:
任何类型的表达式
答案:
C
第21题(1.0分)题号:
381
以下标识符中,不能作为合法的C用户定义标识符的是()。
AianswerB1oCrsignedD:
_if
答案:
C
第22题(1.0分)题号:
2898己知year为整型.变景,不能使表达式(year%4==0&&year%100!
=0)||year%400==0的值为”真"的数据是().
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指定的文件的调用
B:
预处理指令只能位于C源文件的开始C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:
C
第24题(1.0分)题号:
156执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\nH);elseprintf("%%%%\n");
A:
****B:
%%%%
C:
%%%%cD:
有错,执行不正确
答案:
A
第25题(1.0分)题号:
2850以下函数调用语句中实参的个数是aexce((v1,v2),(v3,v4,v5),v6);
A:
3B:
4C:
5D:
6
答案:
A
第26题(1.0分)题号:
506以下程序段的输出结果为()。
for(i=4;i>1;i-)for(j=1;j
A:
无B:
######C:
#D:
###
答案:
B
第27题(1.0分)题号:
2830下列程序的输出结果是amain()
{intx=1,y=0,a=0,b=0;switch(x)
{
case1:
switch(y)
case0:
a++;break;case1:
b++;break;
}
case2:
a++;b++;break;case3:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A;a=1,b=0B:
a=2,b=1
C;a=1,b=1D:
a=2,b=2
答案:
B
第28题(1.0分)题号:
573
C语言中运箅对象必须是整型的运算符是()。
A:
%=B:
/C:
=D:
(=
答案:
A
第29题(1.0分)题号:
647
以下能对二维数组a进行正确初始化的语句是()。
A:
inta[2][]={{1,0,1},{5,2,3}};
B:
inta[][3]={{1,2,3},{4,5,6}};
C:
inta[2][4]={{1,2,3},{4,5},{6}};D:
intaD[3]={{1,0,1}{},{1,1}};
答案:
B
第30题(1.0分)题号:
3135以下数组定义中不正确的是().
A:
inta[2][3];
B:
intb[][3]={0,1,2,3};
C:
intc[100][100]={0};
D:
intd[3]Q={{1,2},{1,2,3},{1,2,3,4}};
答案:
D
三、程序填空共2题(共计24分)
第1题(12.0分)题号:
417
r
【程序填空】
题U:
利用全局变最计算长方体的体积及三个面的面积。
*/
ints1,s2,s3;
intvs(inta,intb,intc)
v=【?
】;s1=a*b;
s2=【?
】;s3=a*c;returnv;
}
main()
{intv,l,w,h;
clrscr();
printfOninputlength,widthandheight:
");scanf("%d%d%d",【?
】,&w,&h);v=【?
】;
printf(Hv=%ds1=%ds2=%d
s3=%d\n”,v,s1,s2,s3);getch();
}
答案:
=======(答案”=======
a*b*c
=========或=========
a*b*c
=======(答案2)=======
b*c
=========或=========
b*c
=======(答案3)=======
&l
=======(答案4)=======
vs(l,w,h)
=========或=========
vs(I,w,h)
第2题(12.0分)题号:
441
r
【程序填空】
题U:
给定程序中函数fun的功能是:
从低位开始取出长
整型变最s中奇数位上的数,依次构成一
7
#include
#include
{longsl=10;s/=10;
y貪賣賣★★★★★★♦★spaqe**1****^****/
*t=s【?
】10;while(s>0)
广★****★★食*貪8卩八0[*******★*★★/
{S=【?
】;
*t=s%1(Tsl【?
】;
^★♦♦★★*** sl=sl【? 】10; } } main() {longs,t;clrscr(); printf("\nPleaseenters: '1);scanf(n%ld",&s);fun(s,&t); printf("Theresultis: %ld\n",t); } 答案: =======(答案1)======= % =======(答案2)======= s/100 =======(答案3)======= +*t =======(答案4)======= 四、程序改错共2题(共计22分)第1题(11.0分)题号: 383 r 【程序改错】 字符串)。 例如,若输入丨amastudentto take theexamination•,则应输出"IaMAstudenTt〇 takEthEexamination.”。 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 V #include"conio.h" #include"stdio.h" #include"ctype.h" #include"string.h"uplst(char*p) { FOUN〇★★★★★★★★★★/integerk=0;for(;*p;p++)if(k) 广***★*★**★F〇unD★***★***★*/ (if(*p=") {k=0; <★★★★★★★★★★F〇Un*(p-1)=toupper(*(p-1); } } elseif(*p! =")k=1; *(p-1)=toupper(*(p-1)); } main() {charchrstr[81]; printf(M\nPleaseenterastring: n);gets(chrstr);printf(^n\nBeforechanging: \n%s",chrstr);up1st(chrstr); printf(’ViAfterchanging: \n〇/〇s",chrstr); 答案: =======(答案1)======= intk=0; =======(答案2)======= 题U: 给定程序的功能是: 读入一行英文文本,将苏中每个单词的最后一个字母改成大写, 然后 =======(答案3)======= (p-1)=toupper(*(p-1)); 五、程序设计共1题(共计14分) 第2题(11.0分)题号: 431第1题(14.0分)题号: 390 rr 【程序改错】【程序设计】 题U: 编写函数fun求1000以内所有8的倍数之和。 题P: 求一批数中最大值和最小值的差。 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 #include"stdio.h" #defineN1000main() {intsum;sum=fun(8); printf("%d以内所有%〇1的倍数之和为: %d\n”,N,8,sum);getch(); } intfun(intm) irkitirkj ints=0;i; /★★********found***** *****, for(i=1;i>N;i++) •kititirkj if(i/m==0) s+=i; returns;} 答案: =======(答案1): ints=0,i;=======(答案2): for(i=1;i 注意: 部分源程序给出如下。 请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若T语句。 V intmax_min(inta[],intn) { **********J jirkirk'kirkirk'kirkirkirkirkiticj } #defineN30#include"stdlib.h" #include"stdio.h"main() { inta[N】,i,k;clrscr(); for(i=0;i k=max一min(a,N);printf(Mtheresultis: %d\n",k);yzj(); getch(); } yzj() { FILE*IN,*OUT;intn;inti[30]; IN=fopen("in.dat","r"); if(IN==NULL) {printf("ReadFileError1.); } 〇UT=fopen(”out.dat","w”);if(〇UT==NULL){printf("WriteFileError"); } for(n=0;n<5;n++) { fscanf(IN,"%d”,&i[n】); } o=max_min(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); 答案: inti,max,min; max=min=a[0];for(i=1;i 二、单项选择共30题(共计30分) 第1题(1.0分)题号: 177以下描述中,正确的是()。 A: 预处理是指完成宏替换和文件包含中指定的文件的调用 B: 预处理指令只能位于C源文件的开始 C: C源程序中凡是行首以#标识的控制行都是预处理指令 D: 预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备答案: C 第2题(1.0分)题号: 2789设C语言中,int类型数据占4个字节,则short类型数据占(). A: 1个字节B: 2个字节G: 4个字节D: 8个字节答案: B 第3题(1.0分)题号: 693以下各选项企图说明一种新的类型名,其中正确的是()。 A: typedefv1int;B: typedefv2=int; C: typedefintv3;D: typedefv4: int; 答案: C 第4题(1.0分)题号: 104 以下运算符中,优先级最高的运算符是()。 A: ||B: %C: ! D: == 答案: C 第5题(1.0分)题号: 138以下程序的输出结果是()。 main() {inti,j,k,a=3,b=2; i=(-a==b++)? -a: ++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n”,i,j,k); } A: i=2,j=1,k=3B: i=1,j=1,k=2 C: i=4,j=2,k=4D: i=1,j=1,k=3 答案: D 第6题(1.0分)题号: 2907 以下程序段的执行结果是a doublex;x=218.82631;printf("%-6.2e\n",x); A: 输出格式描述符的域宽不够,不能输出 B: 输出为21.38e+01 C: 输出为2.2e+02D: 输出为-2.14e2 答案: C 第7题(1.0分)题号: 152以下程序的运行结果是()。 main() {intn; for(n=1;n<=10;n++) { if(n%3==0)continue;printf("%d",n); A: 12457810B: 369 C: 12D: 1234567890 答案: A 第8题(1.0分)题号: 411下列程序的输出结果为()。 main() {intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\nn,x); } A: 27.000000B: 27.500000 0: 28.000000D: 28.500000 答案: A 第9题(1.0分)题号: 584 设有说明: charw;intx;floaty;doublez;则表达式 w*x+z-y 值的数据类型为()。 A: floatB: charC: intD: double 答案: D 第10题(1.0分)题号: 208下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。 A: 8B: 23C: 17D: 6 答案: B 第11题(1.0分)题号: 2962若已定义x为int类型变景,下列语句中说明指针变量p的正确语句是〇. A: intp=&x;B: int*p=x; Clint*p=&x;D: *p=*x; 答案: C 第12题(1.0分)题号: 3142 以下正确的说法是: 在C语言中(). A: 实参和与芄对应的形参各占用独立的存储单元B: 实参和与芄对应的形参共占用一个存储单元C: 只有当实参和与其对应的形参同名时才共占用存储单元 D: 形参是虚拟的,不占用存储单元 答案: A 第13题(1.0分)sizeof(float)是(). 题号: 3156 A: —种函数调用 B: —个不合法的表达式 C: 一个整型表达式 D: —个浮点表达式 答案: C 第14题(1.0分) 题号: 3119 以下对二维数组a 的正确说明是(). A: inta[3]Q B: floata(3,4) C: doublea[1][4] Difloata(3)(4) 答案: C 第15题(1.0分) 题号: 3218 若有以下定义,则能使值为3的表达式是〇intk=7,x=12; Aix%=(k%=5) B: x%=(k-k%5) C: x%=k-k%5 D: (x%=k)-(k%=5) 答案: D 第16题(1.0分) 题号: 672 C语言允许函数类型缺省定义,此时函数值隐含的类型是()。 A: floatB: int C: longD: double 答案: B 第17题(1.0分) 题号: 2796 先用语句定义字符型变景c,然后要将字符a赋给c,则下列语句中正确的是A: c=,a.;B: c="a"; C: c="97";D: C=,97, 答案: A 第18题(1.0分)题号: 2923 经过以下语句定义后,表达式z+=x>y? ++x: ++y的 值为a intx=1,y=2,z=3; A: 2B: 3C: 6D: 5 答案: C 第19题(1.0分)题号: 526 用户定义的函数不可以调用的函数是()。 A: 非整型返回值的B: 本文件外的 C: main函数D: 本函数下面定义的答案: c 第20题(1.0分)题号: 2567 以下标识符中,不能作为合法的C用户定义标识符的是(). A: a3_b3B: voidC: _123D: IF 答案: B 第21题(1.0分)题号: 2401 下而程序段的输出结果为() inta,b;b=(a=3*5,a*4,a*5);printf("%d",b); A: 60B: 75C: 65D: 无确定值 答案: B 第22题(1.0分)题号: 3063若有定义: inta=7;floatx=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是().A: 2.500000B: 2.750000 C: 3.500000D: 〇.〇〇〇〇〇〇 答案: A 第23题(1.0分)题号: 3129 若有说明: intaD[4]=丨0,0丨;则下面不正确的叙述是(). A: 数组a的每个元素都可得到初值0 B: 二维数组a的第一维大小为1 C: 因为二维数组a中第二维大小的值除经初值个数 的商为1,故数组a的行数为1 D: 有元素a[0】[0】和al〇jm可得到初值〇,其佘元素均 得不到初值0 答案: D 第24题(1.0分)题号: 3186 若有说明: inti,j=2,#p=&i;,则能完成i=j赋值功能的 语句是(). A: i=*p;B: *p=*&j;C: i=&j;D: i=**p; 答案: B 第25题(1.0分)题号: 3016 与实际参数为实型数组名相对应的形式参数不可以定义为(). A: floata[];B: float*a; C: floata;D: float(*a)[3]; 答案: C 第26题(1.0分)题号: 515 inti,j,a[2】[3];按照数组a的元素在内存的排列次 序,不能将数 1,2,3,4,5,6存入3数组的是()。 A: for(i=0;i<2;i++)for(j=0;j<3;j++)a[i]〇]=i*3+j+1; B: for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; C: for(i=0;i<6;i++)a[i/3][i%3]=i+1; D: for(i=1;k=6;i++)a[i][i]=i; 答案: D 第27题(1.0分)题号: 2799 下列运算符中,不属于关系运算符的是aA: >C: >=D: ! 答案: D 第28题(1.0分)题号: 662C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。 A: voidB: intC: floatDidouble 答案: B 第29题(1.0分)题号: 196 若有下列定义,则对a数组元素地址的正确引用 是()。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 大学计算机 语言 期末考试 复习 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)