发布时间 : 星期三 文章大学计算机C语言期末考试复习试题及答案(20套)(1)更新完毕开始阅读769908d6ec3a87c24028c4ed
输入所删元素的下标, 函数中对输入的下标进行检查,若越界,则要求重新输入,
直到正确为止。arrout 用以输出数组中的数据,arrdel 进 行所要求的删除操作。
------------------------------------------------------ --
注意:不可以增加或删除程序行,也不可以更改程序的结构。
-----------------------------------------------------*/ #include \#include \#define NUM 10
/**********FOUND**********/ arrout ( int w, int m ) { int k; /**********FOUND**********/ for (k = 1; k < m; k++)
/**********FOUND**********/ printf (\(\
arrdel ( int *w, int n, int k ) { int i;
for ( i = k; i < n-1; i++ ) w[i] = w[i+1]; n--; return n; }
getindex( int n ) { int i; do
{ printf(\n ); scanf (\
} while( i < 0 || i > n-1 ); return i; }
main( ) { int n, d, a[NUM]={21,22,23,24,25,26,27,28,29,30 };
n = NUM;
printf (\( a, n );
d = getindex( n ); n = arrdel ( a, n, d ); printf (\arrout( a, n ); }
答案:
=======(答案1)======= arrout ( int *w, int m )
=======(答案2)======= for (k = 0; k < m; k++)
=======(答案3)======= printf (\
五、程序设计 共1题 (共计14分)第1题 (14.0分) 题号:356
/*------------------------------------------------ 【程序设计】
-------------------------------------------------- 题目:请编写函数 fun,对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按降序排
列。例如,原来的字符串为 CEAedca,排序后 输出为 CedcEAa。
-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主 函数 main
和其它函数中的任何内容,仅在函数
fun 的花 括号中填入所编写的若干语句。------------------------------------------------*/ #include
#include
/**********Program**********/
/********** End **********/ }
main() {
char s[10]; clrscr();
printf(\输入7个字符的字符串:\ gets(s); fun(s,7); printf(\ getch(); NONO(); }
NONO() { int i;
char a[100]; FILE *rf, *wf ; rf = fopen(\= fopen(\for(i=0;i<3;i++) {
fscanf(rf, \fun(a,7); fprintf(wf, \\fclose(wf); }
答案:---------------------- int i,j;
char t; for(i=1;i { t=s[i];s[i]=s[j];s[j]=t;} 一、判断 共10题 (共计10分) 第1题 (1.0分) 题号:1283 C 语言俗称\低级语言的高级形式\这说明 C 语言的功能不强. 答案:N 第2题 (1.0分) 题号:1260 由于主函数首部经常缩写成 main(),所以它不可能有形式参数. 答案:N 第3题 (1.0分) 题号:1505 程序进行编译时,不为形式参数分配存储空间. 答案:Y 第4题 (1.0分) 题号:31 共同体变量所占的内存长度等于 长的成员的长度。答案:Y 第5题 (1.0分) 题号:12 结构体类型只有一种。答案:N 第6题 (1.0分) 题号:1483 return 后面括号里的表达式的值即是此函数的值. 答案:Y 第7题 (1.0分) 题号:1257 结构化程序设计所规定的三种基本控制结构是顺序、选择、输出. 答案:N 第8题 (1.0分) 题号:1265 假设所有变量均为整型 , 则表达式 (a=2,b=3,b++,a+b)的值是5. 答案:N 第9题 (1.0分) 题号:1496 在任何情况下,对二维数组的初始化都可以省略第一维的大小. 答案:N 第10题 (1.0分) 题号:1254 7&3+12的值是15. 答案:N 二、单项选择 共30题 (共计30分)第1题 (1.0分) 题号:2388 对表达式 for(表达式1; ;表达式3)可理解为 () A:for(表达式1;0;表达式3) B:for(表达式1;1;表达式3) C:for(表达式1;表达式1;表达式3) D:for(表达式1;表达式3;表达式3) 答案:B 第2题 (1.0分) 题号:3000 int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则 c 的值为(). A:1 B:2 C:3 D:不一定 答案:B 第3题 (1.0分) 题号:3205 以下程序段的输出结果是 () int a=21,b=11;printf(\A:30 B:31 C:32 D:33 答案:A 第4题 (1.0分) 题号:621 printf 函数中用到格式符%5s,其中数字5 表示输出的字符串占用 5列,如果字符串长度大于5,则输出按方式()。 A:从左起输出该字符串,右补空格 B:按原字符长从左向右全部输出 C:右对齐输出该字串,左补空格 D:输出错误信息 答案:B 第5题 (1.0分) 题号:2862 下面选择中正确的赋值语句是(设 char a[5],*p=a;)(). A:p=\B:a=\C:*p=\D:*a=\ 答案:A 第6题 (1.0分) 题号:633 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 A:将5个初值依次赋给 a[1]至 a[5] B:将5个初值依次赋给 a[0]至 a[4] C:将5个初值依次赋给 a[6]至 a[10] D:因为数组长度与初值的个数不相同,所以此语句不正确 答案:B 第7题 (1.0分) 题号:203 以下对枚举类型名的定义中正确的是()。 A:enum a={sum,mon,tue}; B:enum a {sum=9,mon=-1,tue}; C:enum a={\D:enum a {\ 答案:B 第8题 (1.0分) 题号:2876 以下数值中,不正确的八进制数或十六进制数是(). A:0x16 B:16 C:-16 D:0xaaaa 答案:C 第9题 (1.0分) 题号:157 下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf(\} A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 第10题 (1.0分) 题号:134 若 a 是 float 型变量,b 是 unsigned 型变量,以下输入语句中合法的是()。 A:scanf(\B:scanf(\C:scanf(\D:scanf(\ 答案:C 第11题 (1.0分) 题号:2827 在以下给出的表达式中,与 do--while(E) 语句中的(E)不等价的表达式是(). A:(!E==0) B:(E>0||E<0) C:(E==0) D:(E!=0) 答案:C 第12题 (1.0分) 题号:479 变量 p 为指针变量,若 p=&a,下列说法不正确的是()。 A:&*p==&a B:*&a==a C:(*p)++==a++ D:*(p++)==a++ 答案:D 第13题 (1.0分) 题号:2806 下列程序的输出结果是(). main() {int a=011; printf(\} A:12 B:11 C:10 D:9 答案:C 第14题 (1.0分) 题号:547 int (*p)[6]; 它的含义为()。 A:具有6个元素的一维数组 B:定义了一个指向具有6个元素的一维数组的指针变量 C:指向整型指针变量 D:指向6个整数中的一个的地址 答案:B 第15题 (1.0分) 题号:629 为了避免在嵌套的条件语句 if-else 中产生二义性,C 语言规定: else 子句总是与()配对。 A:缩排位置相同的 if B:其之前 近的 if C:其之后 近的 if D:同一行上的 if 答案:B 第16题 (1.0分) 题号:3112 以下叙述正确的是(). A:do-while 语句构成的循环不能用其它语句构成的循环来代替. B:do-while 语句构成的循环只能用 break 语句退出. C:用do-while语句构成的循环,在while后的表达式为非零时结束循环. D:用do-while语句构成的循环,在while后的表达式为零时结束循环 答案:D 第17题 (1.0分) 题号:634 以下不正确的定义语句是()。 A:double x[5]={2.0,4.0,6.0,8.0,10.0}; B:int y[5]={0,1,3,5,7,9}; C:char c1[]={'1','2','3','4','5'}; D:char c2[]={'\\x10','\\xa','\\x8'}; 答案:B 第18题 (1.0分) 题号:2834 设 j 和 k 都是 int 类型,则 for 循环语句 for(j=0,k=-1;k=1;j++,k++) printf(\A:循环结束的条件不合法 B:是无限循环 C:循环体一次也不执行 D:循环体只执行一次 答案:B 第19题 (1.0分) 题号:1950 结构化程序设计的3种结构是() A:顺序结构、选择结构、转移结构 B:分支结构、等价结构、循环结构 C:多分支结构、赋值结构、等价结构 D:顺序结构、选择结构、循环结构答案:D 第20题 (1.0分) 题号:3073 能正确表示逻辑关系:\≥10或a≤0\的C语言表达式是(). A:a>=10 or a<=0 B:a>=0|a<=10 C:a>=10&&a<=0 D:a>=10 a<=0 答案:D 第21题 (1.0分) 题号:3007 int i,j,a[2][3];按照数组 a 的元素在内存的排列次序,不能将数 1,2,3,4,5,6存入 a 数组的是(). A:for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=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;i<=6;i++)a[i][i]=i; 答案:D 第22题 (1.0分) 题号:455 C 语言中函数调用的方式有()。 A:函数调用作为语句一种 B:函数调用作为函数表达式一种 C:函数调用作为语句或函数表达式两种 D:函数调用作为语句?函数表达式或函数 参数三种 答案:D 第23题 (1.0分) 题号:2868 变量p为指针变量,若p=&a,下列说法不正确的是(). A:&*p==&a B:*&a==a C:(*p)++==a++ D:*(p++)==a++ 答案:D 第24题 (1.0分) 题号:189 若已定义 x 为 int 类型变量,下列语句中说明指针变量 p 的正确语句是()。 A:int p=&x; B:int *p=x; C:int *p=&x; D:*p=*x; 答案:C 第25题 (1.0分) 题号:3193 int i=1,j=1,k=2; if((j++||k++)&& i++) printf(\执行后输出结 果是() A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,3 答案:C 第26题 (1.0分) 题号:3115 若有说明:int a[][3]={1,2,3,4,5,6,7};则 a 数组第一维的大小是(). A:2 B:3 C:4 D:无确定值 答案:B 第27题 (1.0分) 题号:187 经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。 A:p=p+2; B:p=a[5]; C:p=a[2]+2; D:p=&(j+2); 答案:A 第28题 (1.0分) 题号:676 以下只有在使用时才为该类型变量分配内存的存储类说明是()。 A:auto 和 static B:auto 和 register C:register 和 static D:extern 和 register