中南民族大学 10套计算机C语言 期末考试复习试题及答案.docx
- 文档编号:5849680
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:116
- 大小:69.15KB
中南民族大学 10套计算机C语言 期末考试复习试题及答案.docx
《中南民族大学 10套计算机C语言 期末考试复习试题及答案.docx》由会员分享,可在线阅读,更多相关《中南民族大学 10套计算机C语言 期末考试复习试题及答案.docx(116页珍藏版)》请在冰豆网上搜索。
中南民族大学10套计算机C语言期末考试复习试题及答案
一、判断共10题(共计10分)
第1题(1.0分)题号:
1488
函数即可以嵌套定义,又可以嵌套调用.
答案:
N
第2题(1.0分)题号:
1256
unsigned和void在C中都是保留字.
答案:
Y
第3题(1.0分)题号:
1280
表达式++i表示对变量i自加1.
答案:
Y
第4题(1.0分)题号:
1282
C语言源程序的基本结构单位是main函数.
答案:
N
第5题(1.0分)题号:
1276
字符常量的长度肯定为1.
答案:
Y
第6题(1.0分)题号:
1469
chara[]={'a','b','c'};charb[]={"abc"};数组a和数组b占用的内存空间大小不一样.
答案:
Y
第7题(1.0分)题号:
1249
若有inti=10,j=2;则执行完i*=j+8;后i的值为28.
答案:
N
第8题(1.0分)题号:
33
inti,*p=&i;是正确的C说明。
答案:
Y
第9题(1.0分)题号:
1250
While循环语句的循环体至少执行一次.
答案:
N
第10题(1.0分)题号:
1510
有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0.
答案:
Y
二、单项选择共30题(共计30分)
第1题(1.0分)题号:
456
执行下面程序后,输出结果是()。
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:
45
B:
27
C:
18
D:
72
答案:
A
第2题(1.0分)题号:
437
下列数组说明中,正确的是()。
A:
intarray[][4];
B:
intarray[][];
C:
intarray[][][5];
D:
intarray[3][];
答案:
A
第3题(1.0分)题号:
2396
下面有关for循环的正确描述是()
A:
for循环只能用于循环次数已经确定的情况
B:
for循环是先执行循环体语句,后判断表达式
C:
在for循环中,不能用break语句跳出循环体
D:
for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:
D
第4题(1.0分)题号:
2817
以下程序的输出结果是().
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=3
B:
i=1,j=1,k=2
C:
i=4,j=2,k=4
D:
i=1,j=1,k=3
答案:
D
第5题(1.0分)题号:
2866
若有下列定义,则对a数组元素地址的正确引用是().
inta[5],*p=a;
A:
*(p+5)
B:
*p+2
C:
*(a+2)
D:
*&a[5]
答案:
C
第6题(1.0分)题号:
711
下列选项中正确的语句组是()。
A:
chars[8];s={"Beijing"};
B:
char*s;s={"Beijing"};
C:
chars[8];s="Beijing";
D:
char*s;s="Beijing";
答案:
D
第7题(1.0分)题号:
3191
若变量a,i已正确定义,且i已正确赋值,合法的语句是()
A:
a=int(i);
B:
a==1
C:
++i;
D:
a=a++=5;
答案:
C
第8题(1.0分)题号:
490
以下字符中不是转义字符的是()。
A:
\a'
B:
\b'
C:
\c'
D:
'\\'
答案:
C
第9题(1.0分)题号:
184
下列定义不正确的是()。
A:
#definePI3.141592
B:
#defineS345
C:
intmax(x,y);intx,y;{}
D:
staticcharc;
答案:
C
第10题(1.0分)题号:
3028
charh,*s=&h;可将字符H通过指针存入变量h中的语句是().
A:
*s=H;
B:
*s='H';
C:
s=H;
D:
s='H'
答案:
B
第11题(1.0分)题号:
690
设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。
A:
10101001
B:
10101000
C:
11111101
D:
01010101
答案:
D
第12题(1.0分)题号:
2381
设以下变量均为int类型,表达式的值不为7的是()
A:
x=y=6,x+y,x+1
B:
x=y=6,x+y,y+1
C:
x=6,x+1,y=6,x+y
D:
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:
auto
B:
register
C:
static
D:
extern
答案:
A
第15题(1.0分)题号:
1343
C语言源程序的基本单位是().
A:
过程
B:
函数
C:
子程序
D:
标识符
答案:
B
第16题(1.0分)题号:
3023
C语言程序中必须有的函数是().
A:
#include"stdio.h"
B:
main
C:
printf
D:
scanf
答案:
B
第17题(1.0分)题号:
3228
有定义:
inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为()
A:
1.4
B:
1
C:
2.0
D:
2
答案:
B
第18题(1.0分)题号:
640
以下对二维数组a的正确说明是()。
A:
inta[3][]
B:
floata(3,4)
C:
doublea[1][4]
D:
floata(3)(4)
答案:
C
第19题(1.0分)题号:
2884
以下标识符中,不能作为合法的C用户定义标识符的是().
A:
answer
B:
to
C:
signed
D:
_if
答案:
C
第20题(1.0分)题号:
652
在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A:
整型常量
B:
整型表达式
C:
整型常量或整型表达式
D:
任何类型的表达式
答案:
C
第21题(1.0分)题号:
381
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:
answer
B:
to
C:
signed
D:
_if
答案:
C
第22题(1.0分)题号:
2898
已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)||
year%400==0的值为"真"的数据是().
A:
1990
B:
1992
C:
1996
D:
2000
答案:
A
第23题(1.0分)题号:
177
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:
C
第24题(1.0分)题号:
156
执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\n");
elseprintf("%%%%\n");
A:
****
B:
%%%%
C:
%%%%c
D:
有错,执行不正确
答案:
A
第25题(1.0分)题号:
2850
以下函数调用语句中实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
A:
3
B:
4
C:
5
D:
6
答案:
A
第26题(1.0分)题号:
506
以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A:
无
B:
######
C:
#
D:
###
答案:
B
第27题(1.0分)题号:
2830
下列程序的输出结果是().
main()
{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=0
B:
a=2,b=1
C:
a=1,b=1
D:
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:
inta[][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][]={{1,2},{1,2,3},{1,2,3,4}};
答案:
D
三、程序填空共2题(共计24分)
第1题(12.0分)题号:
417
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
利用全局变量计算长方体的体积及三个面的面积。
-------------------------------------------------------*/
ints1,s2,s3;
intvs(inta,intb,intc)
{intv;
/***********SPACE***********/
v=【?
】;
s1=a*b;
/***********SPACE***********/
s2=【?
】;
s3=a*c;
returnv;
}
main()
{intv,l,w,h;
clrscr();
printf("\ninputlength,widthandheight:
");
/***********SPACE***********/
scanf("%d%d%d",【?
】,&w,&h);
/***********SPACE***********/
v=【?
】;
printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3);
getch();
}
答案:
=======(答案1)=======
a*b*c
=========或=========
a*b*c
=======(答案2)=======
b*c
=========或=========
b*c
=======(答案3)=======
&l
=======(答案4)=======
vs(l,w,h)
=========或=========
vs(l,w,h)
第2题(12.0分)题号:
441
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
给定程序中函数fun的功能是:
从低位开始取出长
整型变量s中奇数位上的数,依次构成一个新数放在t中。
-------------------------------------------------------*/
#include
#include
voidfun(longs,long*t)
{longsl=10;
s/=10;
/***********SPACE***********/
*t=s【?
】10;
while(s>0)
/***********SPACE***********/
{s=【?
】;
/***********SPACE***********/
*t=s%10*sl【?
】;
/***********SPACE***********/
sl=sl【?
】10;
}
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
答案:
=======(答案1)=======
%
=======(答案2)=======
s/100
=======(答案3)=======
+*t
=======(答案4)=======
*
四、程序改错共2题(共计22分)
第1题(11.0分)题号:
383
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
给定程序的功能是:
读入一行英文文本,
将其中每个单词的最后一个字母改成大写,然后
输出此文本行(这里的“单词”是指由空格隔开的
字符串)。
例如,若输入Iamastudenttotake
theexamination.,则应输出"IaMAstudenTtO
takEthEexamination."。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include"conio.h"
#include"stdio.h"
#include"ctype.h"
#include"string.h"
up1st(char*p)
{
/**********FOUND**********/
integerk=0;
for(;*p;p++)
if(k)
/**********FOUND**********/
{if(*p='')
{k=0;
/**********FOUND**********/
*(p-1)=toupper(*(p-1);
}
}
elseif(*p!
='')k=1;
*(p-1)=toupper(*(p-1));
}
main()
{charchrstr[81];
printf("\nPleaseenterastring:
");gets(chrstr);
printf("\n\nBeforechanging:
\n%s",chrstr);
up1st(chrstr);
printf("\nAfterchanging:
\n%s",chrstr);
}
答案:
=======(答案1)=======
intk=0;
=======(答案2)=======
{if(*p=='')
=======(答案3)=======
*(p-1)=toupper(*(p-1));
第2题(11.0分)题号:
431
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
编写函数fun求1000以内所有8的倍数之和。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程
序的结构。
------------------------------------------------------*/
#include"stdio.h"
#defineN1000
main()
{intsum;
sum=fun(8);
printf("%d以内所有%d的倍数之和为:
%d\n",N,8,sum);
getch();
}
intfun(intm)
{
/**********FOUND**********/
ints=0;i;
/**********FOUND**********/
for(i=1;i>N;i++)
/**********FOUND**********/
if(i/m==0)
s+=i;
returns;}
答案:
=======(答案1)=======
ints=0,i;
=======(答案2)=======
for(i=1;i =======(答案3)======= if(i%m==0) 五、程序设计共1题(共计14分) 第1题(14.0分)题号: 390 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目: 求一批数中最大值和最小值的差。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。 ------------------------------------------------*/ intmax_min(inta[],intn) { /**********Program**********/ /**********End**********/ } #defineN30 #include"stdlib.h" #include"stdio.h" main() { inta[N],i,k; clrscr(); for(i=0;i a[i]=random(51)+10; for(i=0;i {printf("%5d",a[i]); if((i+1)%5==0)printf("\n"); } k=max_min(a,N); printf("theresultis: %d\n",k); yzj(); getch(); } yzj() { FILE*IN,*OUT; intn; inti[30]; into; IN=fopen("in.dat","r"); if(IN==NULL) {printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==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 if(a[i]>max)max=a[i]; elseif(a[i] return(max-min); ---------------------- 一、判断共10题(共计10分) 第1题(1.0分)题号: 34 7&3+12的值是15。 答案: N 第2题(1.0分)题号: 1468 在C语言中,整型数据在内存中占2个字节. 答案: N 第3题(1.0分)题号: 19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案: Y 第4题(1.0分)题号: 1512 将一个字符串"abc"赋给字符串变量str的方法是str="abc". 答案: N 第5题(1.0分)题号: 1501 以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关. 答案: N 第6题(1.0分)题号: 18 a=(b=4)+(c=6)是一个合法的赋值表达式。 答案: Y 第7题(1.0分)题号: 1262 C语言规定: 在一个源程序中,main函数的位置必须在最开始. 答案: N 第8题(1.0分)题号: 1479 C程序中的一个变量可以被定义为两个或多个不同的类型. 答案: N 第9题(1.0分)题号: 23 若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。 答案: Y 第10题(1.0分)题号: 1502 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的. 答案: N 二、单项选择共30题(共计30分) 第1题(1.0分)题号: 177 以下描述中,正确的是()。 A: 预处理是指完成宏替换和文件包含中指定的文件的调用 B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南民族大学 10套计算机C语言 期末考试复习试题及答案 中南 民族大学 10 计算机 语言 期末考试 复习 试题 答案