大学计算机C语言期末考试复习试题及答案(20套)(1) 联系客服

发布时间 : 星期三 文章大学计算机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 #include int fun(char *s,int num) {

/**********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