C语言程序设计-期末考试复习题及参考答案(山东开放)_第1页
C语言程序设计-期末考试复习题及参考答案(山东开放)_第2页
C语言程序设计-期末考试复习题及参考答案(山东开放)_第3页
C语言程序设计-期末考试复习题及参考答案(山东开放)_第4页
C语言程序设计-期末考试复习题及参考答案(山东开放)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计一、单选题(题数:15,共

30.0

分)1一个二维数组元素为a[i][j],它的指针访问方式不正确的是(

)。A、*(a[i]+j)B、(*(a+i))[j]C、*a[i]+jD、*(*(a+i)+j)正确答案:C

2当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(

)。A、forB、whileC、do-whileD、switch正确答案:A

3假定一个结构类型的定义为“struct

B{int

a[5];

char*

b;};”,则该类型的长度为(

)。A、20B、21C、24D、28正确答案:C

4假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(

)。A、1个字节B、2个字节C、4个字节D、8个字节正确答案:C

5在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:B

6已知“int

*p=calloc(24,sizeof(int));”,则p所指向的动态内存空间中,能够存储整型元素的个数为(

)。A、6

B、

12

C、

48

D、24正确答案:D

7每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(

)。A、warningB、errorC、warnD、err正确答案:A

8函数定义参数表中的每个形参变量,其作用域范围为所在的整个(

)。A、程序B、文件C、函数D、参数表正确答案:C

9在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(

)。A、mainB、MAINC、nameD、function正确答案:A

10若需要把一个字符串赋给字符数组,则选用的函数是(

)。A、strlenB、strcmpC、strcatD、strcpy正确答案:D

11在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:C

12在循环语句“for(i=0;

i<n;

i++)

S;”循环体S的执行次数为(

)A、1B、n-1C、nD、n+1正确答案:C

13在C语言中,打开一个数据文件的系统函数为(

)。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A

14下面正确的函数原型语句是(

)。A、int

Function(void

a);B、void

Function

(int);C、int

Function(a);D、void

int(double

a);正确答案:B

15在一个数组中,数组元素a[i]前面的元素个数为(

)。A、iB、i+1C、i-1D、2*i正确答案:A

二、填空题(题数:10,共

30.0

分)1执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:

平均值2执行下面程序的输出结果为___________。#include<stdio.h>void

main()

{int

i,f1=1,f2;for(i=2;i<6;i++)

{f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}(3.0分)正确答案第一空:

f2=813执行下面程序的输出结果为________。#includestdio.h>#include<stdio.h>void

main()

{int

a=18,b=4,c=0;if(a/b)

{c+=a/b;

c+=a%b;}if(a%b)

{a=a/b;

b=a%b;}printf("%d",a+b+c);}(3.0分)正确答案第一空:

104x<=10的相反表达式为____________。(3.0分)正确答案第一空:

x>=105在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:

17306已知'A'~'Z'的ASCII码为65~90,当执行“int

x='C'+5;”语句后x的值为________。(3.0分)正确答案第一空:

727已知x=-25,则abs(x)的值为_________。(3.0分)正确答案第一空:

258执行下面程序的输出结果为__________。#include<stdio.h>void

main()

{int

i=0,s=0;do

{i+=2;if(i%3==0)

continue;s+=i*(i+1);}

while(s<60);printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=989假定结构类型为“structstrNode{charname[15];structstrNode*next;};”,下面函数能够遍历以f为表头指针的单链表,请在横线处填写合适内容。voidxb1(structstrNode*f){while(f!=NULL){printf("%s",f->name);f=_______________;}printf("\n");}(3.0分)正确答案第一空:

f->next10执行下面程序的输出结果为___________。#include<stdio.h>void

main()

{int

i,j,s=0;for(i=1;

i<3;

i++)for(j=1;

j<5;

j++)s+=i*j;printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=30三、判断题(题数:20,共

40.0

分)1在结构成员访问运算符中,点运算符(.)为双目运算符。正确答案:

2在一个链表中,表尾结点指针域的值为空(NULL)。正确答案:

3假定a是一个一维数组,则表达式*(a+i)所对应的元素为a[i]。正确答案:

4假定a是一个一维数组,则进行a++运算是允许的。正确答案:

×

5在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。正确答案:

6访问一个链表时,必须从表头指针出发,依次访问每个结点。正确答案:

7二维数组元素带有一个下标。正确答案:

×

8已知“int

a[3][5];

int(*p)[5]=a;”,则进行p++运算是允许的。正确答案:

9while循环语句中的循环体至少被执行一次。正确答案:

×

10在一行中出现多条语句时,注释语句只能为最后一条语句。正确答案:

×

11在执行“scanf("%d

%d",&x,&y);”语句时,需要从键盘上输入2个整数。正确答案:

12表达式(float)25/4的值为6。正确答案:

×

13在“printf("s=%c\n","abc");”语句中,格式符的使用同后面的输出数据相适合。正确答案:

×

14在执行“printf("%d

-

%d

=

%d",x,y,x-y);”语句时,其输出的前两个数据值之间将采用逗号分开。正确答案:

×

15do-while循环语句是以分号结束的语句。正确答案:

16当循环次数确定时,while循环语句能够转换为for循环语句。正确答案:

17若对一个文本文件以"r"方式打开时,则称该文本文件为输出文件。正确答案:

×

18常数3.26是双精度浮点数。正确答案:

×

19在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。正确答案:

×

20对于全局或文件作用域变量,其定义位置只能在程序文件中所有函数定义之外。正确答案:

一、单选题(题数:15,共

30.0

分)CBABBAABADCADBC1表示文件结束符的符号常量为(

)。A、eof

B、

Eof

C、

EOF

D、

feof正确答案:C

2函数调用func(2+x,4*y,5)中所含实参的个数为(

)。A、2B、3C、4D、5正确答案:B

3若一个文本文件的长度为n-1,当以"r"方式打开时,其读文件指针初始指向的字节位置编号为(

)。A、0B、1C、n-1D、n正确答案:A

4在switch语句中,每个保留字case后面的表达式必须是(

)。A、变量种B、常量C、一般表达式D、函数调用正确答案:B

5在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:B

6假定一个函数的原型为int

ff(int

x),一个整型变量为a,则下面函数调用表达式不正确的是(

)。A、ff(*a)B、ff(a)C、ff(a+10)D、ff(3)正确答案:A

7若用数组名作为函数调用的实参,传递给形参的是(

)。A、数组的首地址B、数组中第一个元素的值C、数组中全部元素的值D、数组元素的个数正确答案:A

8要定义a和b为两个整型变量,则使用的定义语句为(

)。A、int

a;b;B、int

a,b;C、int

a

b;D、int

a:b;正确答案:B

9假定有一个定义语句为“int

a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(

)。A、0B、4C、8D、6正确答案:A

10C语言源程序文件的扩展名为(

)。A、cppB、exeC、objD、c正确答案:D

11在C语言程序中,多行注释使用的结束标记符为(

)。A、//B、/*C、*/D、**正确答案:C

12在一个数组中,数组元素a[i]前面的元素个数为(

)。A、iB、i+1C、i-1D、2*i正确答案:A

13在下面字符数组的定义语句中,有语法错误的是(

)。A、char

a[20]="abcdefg";B、char

a[]="x+y=55.";C、char

a[15]={'1','2'};D、char

a[10]='5';正确答案:D

14使用“typedef

int

Integer;”语句把标识符Integer定义为一个(

)。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B

15假定有一个定义语句为“int

a[10]={3,4,2,8,6};”,则元素a[3]的值为(

)。A、4B、2C、8D、6正确答案:C

二、填空题(题数:10,共

30.0

分)1此程序运行后,得到的输出结果为_________________。#include#includestructintNode{intvalue;structintNode*next;};voidmain(void){structintNodex={32,NULL},y={45,&x},*r;for(r=&y;r!=NULL;r=r->next)printf("%d",r->value);printf("\n");}(3.0分)正确答案第一空:

45322执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[3][3]={{13,18,16},{15,19,12},{8,15,22}};inti,j,x=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]<x)x=a[i][j];printf("x=%d\n",x);}(3.0分)正确答案第一空:

x=83执行下面程序的输出结果为__________。#include<<stdio.h>#include<string.h>voidmain(){intc1,c2;chara[20]="String1234\n";charb[10]="str";c1=strlen(a);strcat(b,"245\0");intc2=strlen(b);printf("%d%d\n",c1,c2);}(3.0分)正确答案第一空:

1164执行下面程序的输出结果为____________。#include<stdio.h>void

main()

{int

i=1,p=1,s=1;while(s<40)

{i++;

p=p*i;

s=s+p;}printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=1535执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:

平均值6在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:

17307执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=468已知'A'~'Z'的ASCII码为65~90,当执行“int

x='C'+5;”语句后x的值为________。(3.0分)正确答案第一空:

729执行下面程序的输出结果为________。#include<stdio.h>void

main()

{int

i,s=0;for(i=1;

i<10;

i++)

{s+=i*(i+1);if(s>40)

break;}printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=7010执行下面程序的输出结果为__________。#include<stdio.h>void

main()

{int

i=0,s=0;do

{i+=2;if(i%3==0)

continue;s+=i*(i+1);}

while(s<60);printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=98三、判断题(题数:20,共

40.0

分)错对对错对对对错对错错错错对对对错错错对1在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针,它仅带有一个文件流参数。正确答案:

×

2表达式sizeof(25)的值等于4。正确答案:

3在一条变量定义语句中可以同时定义多个变量。正确答案:

4一个函数必须返回一个值,不允许定义不返回任何值的函数。正确答案:

×

5在“scanf("%d

%d",&x,&y);”语句所使用的格式字符串中,包含有2个格式符。正确答案:

6在利用printf()函数向屏幕输出数据时,需要在参数表的开始位置使用相应的格式字符串。正确答案:

7在一维数组的定义语句中,可以给数组中每个元素赋初值。正确答案:

8二维数组元素带有一个下标。正确答案:

×

9在执行“scanf("%d

%d",&x,&y);”语句时,需要从键盘上输入2个整数。正确答案:

10C语言系统中提供一个用来描述文件属性的类型标识符为FILE,它与系统头文件stdio.h无关。正确答案:

×

11return语句只有保留字,没有其他成分。正确答案:

×

12表达式(float)25/4的值为6。正确答案:

×

13在结构类型的定义中,结构类型的作用域范围,与它的定义位置无关。正确答案:

×

14do-while循环语句是以分号结束的语句。正确答案:

15在二维数组的定义语句中,数组名后带有两对中括号。正确答案:

16当循环次数确定时,while循环语句能够转换为for循环语句。正确答案:

17若对一个文本文件以"r"方式打开时,则称该文本文件为输出文件。正确答案:

×

18在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。正确答案:

×

19短整型、标准整型和长整型的长度分别为4和8。正确答案:

×

20对于全局或文件作用域变量,其定义位置只能在程序文件中所有函数定义之外。正确答案:

一、单选题(题数:15,共

30.0

分)1用于输出表达式值的标准输出函数是(

)。A、printf()B、print()C、scanf()D、output()正确答案:A

2C语言中的选择类语句有两条,它们是(

)。A、if和switchB、if和elseC、switch和caseD、else和case正确答案:A

3在联合类型的定义中,使用的关键字是(

)。A、structB、unionC、staticD、enum正确答案:B

4若x的值为-10,则执行“if(x)

x++;

else

x--;”语句后,x的值为(

)。A、-11B、-9C、-10D、0正确答案:B

5在C语言中,为追加写操作打开一个二进制文件的方式为(

)。A、"w+"B、"rb"C、"wb"D、"ab"正确答案:D

6下列数值中最小值是(

)。A、28/8B、35/3C、28%8D、35%3正确答案:D

7在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是(

)。A、全局B、语句C、文件D、局部正确答案:B

8对于每个进行动态存储分配的函数,其返回值类型为(

)。A、charB、char*C、voidD、void*正确答案:D

9标准输入设备键盘的文件流标识符是(

)。A、stdinB、stdoutC、stderrD、stdio正确答案:A

10假定一个函数原型为int

f1(int

a[][N],int

n),与数组参数等价的表示为(

)。A、int*

aB、int**

aC、int

(*a)[N]D、int*

a[N]正确答案:C

11函数定义参数表中的每个形参变量,其作用域范围为所在的整个(

)。A、程序B、文件C、函数D、参数表正确答案:C

12在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(

)。A、mainB、MAINC、nameD、function正确答案:A

13利用一维字符数组存储一个字符串时,在其末尾自动存储的一个字符是(

)。A、空格B、'\0'C、回车D、'\n'正确答案:B

14若需要把一个字符串赋给字符数组,则选用的函数是(

)。A、strlenB、strcmpC、strcatD、strcpy正确答案:D

15一个函数定义所包含的两个部分是(

)。A、函数头和函数体B、函数头和函数尾C、函数原型和函数体D、函数名和参数表正确答案:A

二、填空题(题数:10,共

30.0

分)1假定以-1.0作为结束键盘输入的标志,此函数的功能是求出并返回从键盘上输入的一批实数的_____________。doublexk7(){doublex,y=0;intn=0;printf("请输入一批实数,直到-1.0为止!\n");do{scanf("%Lf",&x);if(x==-1.0)break;n++;y+=x;}while(1);if(n==0)returny;elsereturny/n;}(3.0分)正确答案第一空:

平均值2执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:

平均值3执行下面程序的输出结果为__________。#include<stdio.h>void

main()

{int

n=10,y=0;while(n>5)

y+=n--;printf("y=%d\n",y);}(3.0分)正确答案第一空:

y=404char类型的长度为______字节。(3.0分)正确答案第一空:

15在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:

17306执行下面程序的输出结果为______________。#include<stdio.h>voidmain(){inta[3][3]={{2,3,4},{5,6,8},{10,15,20}};int*p=(int*)a;ints=0;while(p<(int*)a+9)s+=*p++;printf("%d\n",s);}(3.0分)正确答案第一空:

737常数120的数据类型为__________。(3.0分)正确答案第一空:

整型8执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}(3.0分)正确答案第一空:

3639279已知x=-25,则abs(x)的值为_________。(3.0分)正确答案第一空:

2510执行下面程序的输出结果为__________。#include<stdio.h>void

main()

{int

i=0,s=0;do

{i+=2;if(i%3==0)

continue;s+=i*(i+1);}

while(s<60);printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=98三、判断题(题数:20,共

40.0

分)1在程序文件中要进行动态存储分配和释放,则需要引入的系统头文件是stdio.h。正确答案:

×

2在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。正确答案:

3假定a是一个一维数组,则表达式*(a+i)所对应的元素为a[i]。正确答案:

4在一个函数定义中,参数表中的参数定义之间是采用分号分开的。正确答案:

×

5在C语言程序中,

ABC和abc被作为同一标识符使用。正确答案:

×

6从文本文件中输入数据时,需要调用系统函数fputs()或fgets()。正确答案:

×

7浮点数包括单精度浮点数和双精度浮点数两种。正确答案:

8常数3.26f是单精度浮点数。正确答案:

×

9在程序文件中添加注释内容是为了增强程序的可读性。正确答案:

10执行“typedef

int

intType;”语句后,在使用int定义整型变量的地方都可以使用整数类型标识符intType来定义整型变量。正确答案:

11在一个函数定义中,函数体的格式是一条复合语句。正确答案:

12for循环是先判断循环条件,当条件为真时执行循环体。正确答案:

13do-while循环语句是以分号结束的语句。正确答案:

14假定p所指对象的值为25,p+1所指对象的值为42,则表达式*++p的值为42。正确答案:

15当循环次数确定时,while循环语句能够转换为for循环语句。正确答案:

16在if语句中,可以带有else子句,也可以省略它。正确答案:

17进行动态存储分配的malloc()函数带有一个参数。正确答案:

18在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。正确答案:

19对于全局或文件作用域变量,其定义位置只能在程序文件中所有函数定义之外。正确答案:

20在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。正确答案:

×

一、单选题(题数:15,共

30.0

分)1要结束所在循环语句中循环体的一次执行,则在其中使用的语句为(

)。A、continueB、breakC、gotoD、return正确答案:A

2假定一个链表中结点的结构类型为“struct

AA{int

data,

struct

AA

*next;};”,则next数据成员的类型为(

)。A、struct

AAB、struct

AA*C、AA*D、int正确答案:B

3用于从键盘上为变量输入值的标准输入函数是(

)。A、printf()B、print()C、scanf()D、output()正确答案:C

4在switch语句中,每个保留字case后面的表达式必须是(

)。A、变量种B、常量C、一般表达式D、函数调用正确答案:B

5执行“printf("%c",'B'+2);”语句后得到的输出结果为(

)。A、AB、BC、CD、D正确答案:D

6C语言中的选择类语句有两条,它们是(

)。A、if和switchB、if和elseC、switch和caseD、else和case正确答案:A

7在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:B

8每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(

)。A、warningB、errorC、warnD、err正确答案:A

9已知“int

a[10],

x,

*pa=a;”,若要把数组a[3]元素的值赋给x,则不正确的语句为(

)。A、x=pa[3];B、x=*(a+3);C、x=a[3];D、x=*pa+3;正确答案:D

10在printf()函数调用的格式字符串中,每个格式符的先导字符为(

)。A、#B、%C、$D、@正确答案:B

11若需要把一个字符串赋给字符数组,则选用的函数是(

)。A、strlenB、strcmpC、strcatD、strcpy正确答案:D

12假定a为一个数组名,则下面表达式中错误的是(

)。A、a[i]B、*a++C、*aD、*(a+1)正确答案:B

13C语言中使用的字符串常量,其起止标记符是(

)。A、单引号B、双引号C、中括号D、尖括号正确答案:B

14使用“typedef

int

Integer;”语句把标识符Integer定义为一个(

)。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B

15在C语言中,打开一个数据文件的系统函数为(

)。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A

二、填空题(题数:10,共

30.0

分)1此程序运行后,得到的输出结果为_________________。#include#includestructintNode{intvalue;structintNode*next;};voidmain(void){structintNodex={32,NULL},y={45,&x},*r;for(r=&y;r!=NULL;r=r->next)printf("%d",r->value);printf("\n");}(3.0分)正确答案第一空:

45322执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:

平均值3若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字__________。(3.0分)正确答案第一空:

const4执行下面程序的输出结果为___________。#include<stdio.h>void

main()

{int

i,f1=1,f2;for(i=2;i<6;i++)

{f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}(3.0分)正确答案第一空:

f2=815x<=10的相反表达式为____________。(3.0分)正确答案第一空:

x>=106数值常量0x62的表示方式为_____________。(3.0分)正确答案第一空:

十六进制7常数120的数据类型为__________。(3.0分)正确答案第一空:

整型8执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}(3.0分)正确答案第一空:

3639279执行下面程序的输出结果为______________#include<stdio.h>void

main()

{int

x=16,s=0;do

{s+=x;

x-=3;}

while(x>0);printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=5110执行下面程序的输出结果为___________。#include<stdio.h>void

main()

{int

i,j,s=0;for(i=1;

i<3;

i++)for(j=1;

j<5;

j++)s+=i*j;printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=30三、判断题(题数:20,共

40.0

分)1表达式sizeof(25)的值等于4。正确答案:

2在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。正确答案:

3一个函数必须返回一个值,不允许定义不返回任何值的函数。正确答案:

×

4在C语言程序上机操作的过程中,编译程序的操作步骤之后是连接操作。正确答案:

5一个指针指向一个数据对象时,指针值是这个对象的首字节地址。正确答案:

6在“scanf("%d

%d",&x,&y);”语句所使用的格式字符串中,包含有2个格式符。正确答案:

7浮点数包括单精度浮点数和双精度浮点数两种。正确答案:

8在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。正确答案:

9二维数组元素带有一个下标。正确答案:

×

10在一条变量定义语句中,定义的变量和赋给它的初值之间不需要使用等号(=)。正确答案:

×

11若要在程序文件中使用数学函数,则需要引入的系统头文件为math.h。正确答案:

12在C语言中,求一个实数的绝对值的数学函数为fabs(x)。正确答案:

13return语句只有保留字,没有其他成分。正确答案:

×

14表达式(float)25/4的值为6。正确答案:

×

15假定一个数据对象为x,则x的地址表示为*x。正确答案:

×

16一个C语言程序只能够包含一个用户头文件。正确答案:

×

17在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。正确答案:

×

18进行动态存储分配的malloc()函数带有一个参数。正确答案:

19广义整数类型包括短整型、标准整型和长整型3种。正确答案:

×

20在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。正确答案:

×

一、单选题(题数:15,共

30.0

分)1当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(

)。A、forB、whileC、do-whileD、switch正确答案:A

2在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:B

3每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(

)。A、warningB、errorC、warnD、err正确答案:A

4每次先进行循环条件的判断,然后再执行循环体的语句为(

)。A、for和doB、for和whileC、while和doD、switch和break正确答案:B

5每个C语言程序文件的编译错误的类型有(

)。A、1种B、2种C、3种D、4种正确答案:B

6在C语言中,为追加写操作打开一个二进制文件的方式为(

)。A、"w+"B、"rb"C、"wb"D、"ab"正确答案:D

7对于每个进行动态存储分配的函数,其返回值类型为(

)。A、charB、char*C、voidD、void*正确答案:D

8在C语言程序中,进行数据的输入和输出操作时,需要包含的系统头文件是(

)。A、stdio.hB、stdlib.hC、math.hD、string.h正确答案:A

9假定一个函数原型为int

f1(int

a[][N],int

n),与数组参数等价的表示为(

)。A、int*

aB、int**

aC、int

(*a)[N]D、int*

a[N]正确答案:C

10在C语言程序中,多行注释使用的结束标记符为(

)。A、//B、/*C、*/D、**正确答案:C

11若需要把一个字符串赋给字符数组,则选用的函数是(

)。A、strlenB、strcmpC、strcatD、strcpy正确答案:D

12在C语言中,打开一个数据文件的系统函数为(

)。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A

13下面正确的函数原型语句是(

)。A、int

Function(void

a);B、void

Function

(int);C、int

Function(a);D、void

int(double

a);正确答案:B

14一个指针类型的简单变量占用内存中的字节数为(

)。A、2B、4C、8D、16正确答案:B

15假定一维数组的定义为“char

a[8];”,则该数组所占用的存储空间的字节数为(

)。A、8B、16C、64D、32正确答案:A

二、填空题(题数:10,共

30.0

分)1执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[3][3]={{13,18,16},{15,19,12},{8,15,22}};inti,j,x=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]<x)x=a[i][j];printf("x=%d\n",x);}(3.0分)正确答案第一空:

x=82执行下面程序的输出结果为____________。#include<stdio.h>void

main()

{int

i=1,p=1,s=1;while(s<40)

{i++;

p=p*i;

s=s+p;}printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=1533执行下面程序的输出结果为__________。#include<stdio.h>void

main()

{int

n=10,y=0;while(n>5)

y+=n--;printf("y=%d\n",y);}(3.0分)正确答案第一空:

y=404此函数的功能是把十进制正整数x转换为________进制数输出出来。voidxk10(intx){chara[10];inti=0,rem;do{rem=x%16;x=x/16;if(rem<10)a[i]=48+rem;//'0'字符的ASCII码为48elsea[i]=55+rem;//'A'字符的ASCII码为65i++;}while(x!=0);while(i>0)printf("%c",a[--i]);}(3.0分)正确答案第一空:

十六5若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字__________。(3.0分)正确答案第一空:

const6char类型的长度为______字节。(3.0分)正确答案第一空:

17在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:

17308常数120的数据类型为__________。(3.0分)正确答案第一空:

整型9执行下面程序的输出结果为_____________。#include<stdio.h>void

main()

{int

a=25,b=18;if(a>b)

printf("%s\n","a>b");if(a==b)

printf("%s\n","a==b");if(a<b)

printf("%s\n","a}(3.0分)正确答案第一空:

a>b10执行下面程序的输出结果为______________#include<stdio.h>void

main()

{int

x=16,s=0;do

{s+=x;

x-=3;}

while(x>0);printf("s=%d\n",s);}(3.0分)正确答案第一空:

s=51三、判断题(题数:20,共

40.0

分)1在C语言中,正弦、余弦或正切函数的参数的度量单位是度。正确答案:

×

2表达式sizeof(25)的值等于4。正确答案:

3在一个函数定义中,参数表中的参数类型可以为void类型。正确答案:

×

4在一条变量定义语句中可以同时定义多个变量。正确答案:

5在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。正确答案:

6对于一维数组元素,数组名后使用一对中括号。正确答案:

7函数调用参数表中的每个实参只能是常量或变量。正确答案:

×

8假定a是一个一维数组,则进行a++运算是允许的。正确答案:

×

9在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。正确答案:

10在执行“printf("s=%s\n","abc");”语句时,输出结果为s=abc。正确答案:

11二维数组元素带有一个下标。正确答案:

×

12在C语言中,一个结构类型的长度等于所含的所有数据成员类型的长度之和。正确答案:

13在C语言中,求一个实数的绝对值的数学函数为fabs(x)。正确答案:

14在同一个联合类型的定义中,各数据成员名必须不同。正确答案:

15在结构类型的定义中,结构类型的作用域范围,与它的定义位置无关。正确答案:

×

16假定二维数组的定义语句为“double

a[M][N];”,则每个数组元素的列下标取值范围在0~N-1之间。正确答案:

17常数3.26是双精度浮点数。正确答案:

×

18在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。正确答案:

×

19在一个链表中,表头结点无前驱结点,表尾结点无后继结点。正确答案:

20假定p所指对象的值为25,p-1所指对象的值为42,则执行*p--运算后,p所指对象的值为42。正确答案:

×

一、单选题(题数:15,共

30.0

分)1一个二维数组元素为a[i][j],它的指针访问方式不正确的是(

)。A、*(a[i]+j)B、(*(a+i))[j]C、*a[i]+jD、*(*(a+i)+j)正确答案:C

2当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(

)。A、forB、whileC、do-whileD、switch正确答案:A

3假定一个结构类型的定义为“struct

B{int

a[5];

char*

b;};”,则该类型的长度为(

)。A、20B、21C、24D、28正确答案:C

4假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(

)。A、1个字节B、2个字节C、4个字节D、8个字节正确答案:C

5在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:B

6已知“int

*p=calloc(24,sizeof(int));”,则p所指向的动态内存空间中,能够存储整型元素的个数为(

)。A、6

B、

12

C、

48

D、24正确答案:D

7每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(

)。A、warningB、errorC、warnD、err正确答案:A

8函数定义参数表中的每个形参变量,其作用域范围为所在的整个(

)。A、程序B、文件C、函数D、参数表正确答案:C

9在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(

)。A、mainB、MAINC、nameD、function正确答案:A

10若需要把一个字符串赋给字符数组,则选用的函数是(

)。A、strlenB、strcmpC、strcatD、strcpy正确答案:D

11在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(

)。A、charB、intC、floatD、double正确答案:C

12在循环语句“for(i=0;

i<n;

i++)

S;”循环体S的执行次数为(

)A、1B、n-1C、nD、n+1正确答案:C

13在C语言中,打开一个数据文件的系统函数为(

)。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A

14下面正确的函数原型语句是(

)。A、int

Function(void

a);B、void

Function

(int);C、int

Function(a);D、void

int(double

a);正确答案:B

15在一个数组中,数组元素a[i]前面的元素个数为(

)。A、iB、i+1C、i-1D、2*i正确答案:A

二、填空题(题数:10,共

30.0

分)1执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论