期末考试C语言复习题含答案沈阳工程学院.docx

上传人:b****8 文档编号:10331398 上传时间:2023-02-10 格式:DOCX 页数:30 大小:26.31KB
下载 相关 举报
期末考试C语言复习题含答案沈阳工程学院.docx_第1页
第1页 / 共30页
期末考试C语言复习题含答案沈阳工程学院.docx_第2页
第2页 / 共30页
期末考试C语言复习题含答案沈阳工程学院.docx_第3页
第3页 / 共30页
期末考试C语言复习题含答案沈阳工程学院.docx_第4页
第4页 / 共30页
期末考试C语言复习题含答案沈阳工程学院.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

期末考试C语言复习题含答案沈阳工程学院.docx

《期末考试C语言复习题含答案沈阳工程学院.docx》由会员分享,可在线阅读,更多相关《期末考试C语言复习题含答案沈阳工程学院.docx(30页珍藏版)》请在冰豆网上搜索。

期末考试C语言复习题含答案沈阳工程学院.docx

期末考试C语言复习题含答案沈阳工程学院

2011年期末考试C语言复习题

——沈阳工程学院

一、单项选择(每题2分,共20分)

1、下列C数据类型属于C语言提供的基本数据类型。

A、数组类型B、指针类型C、整型D、结构体类型

2、C语言程序中,下列B标识符是合法。

A、scanfB、str2C、5aD、His.age

3、已知inta,b;scanf(“%d%d”,&a,&b);程序运行输入a、b的值时,不能作为输入数据分隔符的是A。

A、逗号B、空格C、回车D、[Tab]

4、C语言对嵌套IF语句的规定是:

else总是和D配对。

A、其之前最近的IFB、第一个IF

C、缩进位置相同的IFD、其前面最近且尚未配对的IF

5、下面语句A是定义一个有10个INT整型元素的数组。

A、inta[10]B、inta[2,5]C、inta[]D、int*a[10]

6、已知charch[]=”welcome”;printf(“%d”,strlen(ch));输出结果是B。

A、6B、7C、8D、9

7、Fwirte函数的一般调用形式是D。

A、fwirte(buffer,count,size,fp);

B、fwrite(fp,size,count,buffer);

C、fwrite(fp,count,size,buffer);

D、fwrite(buffer,size,count,fp);

8、设inta=2,b;则执行b=a&&1;语句后,b的结果是b。

A、0B、1C、2D、3

9、在C程序中,设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果类型是d。

A、intB、charC、unsignedD、long

10、下面程序段的运行结果是b。

main()

{inta=11,b=10,c=0;

a/=b+(b&&c);a=a/b

printf(″%d\n″a);}

A、0B、1C、1.1D、11

11、两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是C。

main()

{intx;

scanf(″%d″,&x);

if(x++>5)printf(″%d″,x);

elseprintf(″%d\n″,x-1);}

A、7和5B、6和3C、7和4D、6和4

12、若定义intx[10];则TurboC编译系统为该数组分配c个字节存储单元。

2*10

A、10B、11C、20D、21

13、若有如下函数定义:

add(floatx,floaty)

{……}

则下列说法正确的是c。

A.函数返回值类型不确定B.函数返回值是float型

C.函数返回值是int型D.函数返回值是void型

14、对于int*pa[5];的描述,d是正确的。

A、pa是一个指向数组的指针,所指向的数组是5个int型元素

B、pa是一个指向某数组中第5个元素的指针,该指针是int型变量

C、pa[5]表示某个数组的第5个元素的值

D、pa是一个具有5个元素的指针数组,每一个元素是一个int型指针

15、对for(表达式1;;表达式3)可理解为___b_____。

A、for(表达式1;0;表达式3;)

B、for(表达式1;1;表达式3;)

C、for(表达式1;表达式1;表达式3;)

D、for(表达式1;表达式3;表达式3;)

16、若有说明:

inta[4][4]={0}

则下面不正确的是__A______。

A、数组a的每个元素都可得到初值0

B、二维数组a的第一维大小为1

C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1

D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

17、若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是d。

A、p=q;B、*p=*q;C、n=*q;D、p=n;

18、若有以下说明和定义

typedefint*INTEGER;

INTEGERp,*q;

以下叙述正确的是D。

A、P是int型变量B、程序中可用INTEGER代替int类型名

C、q是基类型为int的指针变量D、p是基类型为int的指针变量

19、有以下程序

main()

{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘\0’};inti,j;

i=sizeof(a);j=strlen(a);

printf(“%d,%d\n”,i,j);

}

程序运行后的输出结果是b。

A、8,8B、8,7C、7,8D、9,8

20、在C程序中,可以把整型数以二进制形式存放到文件中的函数是A。

A、fprintf函数B、fread函数C、fwrite函数D、fputc函数

21、

22、设inta=2,b;则执行b=a&&1;语句后,b的结果是b。

A、0B、1C、2D、3

23、以下数组定义中不正确的是d。

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}};

24、能正确表示a和b同时为正或同时为负的逻辑表达式是d。

A、(a>=0‖b>=0)&&(a<0‖b<0)

B、(a>=0&&b>=0)&&(a<0&&b<0)

C、(a+b>0)&&(a+b<=0)

D、a*b>0

25、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是b。

A、INPUTx,y,z;B、scanf("%d%d%d",&x,&y,&z);

C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);

26、在Turbo2.0中,若定义charc;.则变量c在内存中分配的字节数是a。

A、1个B、2个C、4个D、8个

27、在Turbo2.0中,若定义intc;.则变量c在内存中分配的字节数是b。

A、1个B、2个C、4个D、8个

28、在Turbo2.0中,若定义longc;.则变量c在内存中分配的字节数是c。

A、1个B、2个C、4个D、8个

29、以下运算符中优先级最高的是 c 。

A、&&   B、+、-C、()      D、%

31、以十六进制形式输出整数的格式说明符是 c 。

A、%uB、%ldC、%XD、%o

32、以八进制形式输出整数的格式说明符是 d 。

A、%uB、%ldC、%xD、%o

33、能正确表示逻辑关系:

“a≥10或a≤0”的C语言表达式是d。

A、a>=10ora<=0B、a>=10|a<=0

C、a>=10&&a<=0D、a>=10||a<=0

34、下列程序段的输出结果是c。

x=9;

while(x>7)

{printf("*");x--;}

A、****B、***

C、**D、*

35、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是b。

A、地址传递B、单向值传递

C、双向值传递。

即由实参传给形参,再由形参传回给实参

D、由用户指定传递方式

36、以下正确的函数形式是d。

A、doublefun1(intx,inty)

{

z=x+y;

returnz;

}

B、fun1(intx,y)

{

intz;

returnz;

}

C、intfun1(x,y)

{

intx,y;

doublez;

z=x+y;

returnz;

}

D、doublefun1(intx,inty)

{

doublez;

z=x+y;

returnz;

}

37、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是b。

A、float型B、int型C、long型D、double型

38、一个C语言程序是由b。

A、一个主程序和若干子程序组成

B、若干函数组成

C、若干过程组成

D、若干子程序组成

39、已知:

char*s="Name\Address";则s所指的字符串的长度为c。

A、18B、16C、13D、14

40、若有条件表达(exp)?

a++:

b--,则以下表达式中能完全等价于表达式(exp)的是b。

exp:

!

00

A、(exp==0)B、(exp!

=0)C、exp==1D、(exp!

=1)

41、以下程序有语法性错误,有关错误原因的正确说法是c。

voidmain(void)

{

intk;

voidprt_char();

……

k=prt_char(G);

……

}

A、语句voidprt_char();有错,它是函数调用语句,不能用void说明。

B、变量名不能使用大写字母。

C、函数原型说明和函数调用语句之间有矛盾。

D、函数名不能使用下划线。

42、若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确是a。

structpupil

{

charname[20];

intage;

intsex;

}pup[5],*p;

A、scanf("%d",p->age);

B、scanf("%s",pup[0].name);

C、scanf("%d",&pup[0].age);

D、scanf("%d",&(pup[1].sex));

43、若已有定义int(*p)();则指针pb。

A、代表函数的返回值

B、指向函数的入口地址

C、表示函数的类型

D、表示函数返回值的类型

44、若有语句:

inta=4,*p=&a;,下面均代表地址的一组选项是c。

A、a,p,&*aB、*&a,&a,*p

C、&a,p,&*pD、*&p,*p,&a

45、已知:

unsignedintx=65535;则执行以下语句后的x值为a。

printf("%d",x);

A、65535B、1C、无确定值D、-1

46、求字符串长度的函数是d。

A、strcatB、strcpyC、strcmpD、strlen

45.下述对C语言字符数组的描述中错误的是b。

A、字符数组可以存放字符串。

B、字符数组的字符可以整体输入、输出。

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。

D、可以用关系运算符对字符数组中的字符进行比较。

46、以下关于do-while循环的不正确描述是b。

A、do-while的循环体至少执行一次

B、do-while循环由do开始,用while结束,在while(表达式);后面不能写分号

C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D、do-while的循环体可以是复合语句

47、以下选项中,与k=n++完全等价的表达式是a。

A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1

 

二、填空题(每空1分,共10分)

1、字符型数据存储时占用8位,它实际存储的是字符对应的ASCII码。

2、判断闰年的条件是:

能被4整除但不能被100整除,或能被400整除,程序中逻辑表达式可以写成if((year%4==0&&year&100!

=0)||year%400==0).

3、一个C语言程序中必须存在的函数是主函数。

4、若a是int型变量,则表达式((a=4*5,a*2),a+6)的值为26。

5、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是实参传递给形参。

6、在一个字符数组中,表示一个字符串结束的转义符为'\0'。

7、在函数内部定义的变量统称为局部变量。

8、在函数外部定义的变量统称为全局变量。

9、若有定义:

intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为1。

10、循环语句:

for(k=1;k<=5;k++)执行结束后,K的值为6。

11、a为一个整型变量,pa为指向变量a的指针,则*&a的含义是变量a,&*pa的含义是变量a的地址。

12、程序的执行总是从主函数开始,主函数执行完时,则程序执行结束。

13、控制台标准输入设备一般是指键盘。

14、do-while语句的循环体至少执行一次。

15、循环体中continue语句的作用是结束本次循环的执行。

16、执行strcmp("This","that")的结果是一个负整数。

17、C源程序的基本单位是函数。

18、若有定义:

charc=10;则变量C中包含的字符个数为一个。

19、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为9。

20、执行下面的程序片段后,x的值是12。

i=10;i++;x=++i;

21、设a、b、c均是int型变量,则执行以下for循环后,c的值为10。

for(a=1,b=5;a<=b;a++)c=a+b;

22、若有定义:

inta[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是8。

23、若a=1,b=2则表达式a>b?

a:

b+1的值是3。

24、当a=5,b=4,c=2时,表达式样a>b!

=c的值是1。

25、若a=2,b=4,则表达式!

(x=a)||(y=b)&&0的值是0。

26、若有定义:

inta[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是4,*(a+5)的值是12。

27、若有以下定义和语句:

inta[5]={1,3,5,7,9},*p;

p=&a[2];

则++(*p)的值是6。

 

程序运行结果题(每题4分,共20分)

1、(4分)

当运行以下程序时,从键盘键入right?

则下面程序的运行结果是?

(sjhiu)。

#include

voidmain(void)

{

charc;

while((c=getchar())!

=?

)putchar(++c);

}

2、(4分)

如果运行以下程序段输入字符为“t”,则程序段的运行结果是?

(T)。

voidmain(void)

{

charc1;

scanf("%c",&c1);

c1=(c1>=A&&c1<=Z)?

(c1+32):

c1;

c1=(c1>=a&&c1<=z)?

(c1-32):

c1;

printf("%c",c1);

}

3、(4分)

以下程序的运行结果是?

(9)。

#defineA4

#defineB(x)A*x/2

voidmain(void)

{

floatc,a=4.5;

c=B(a);

printf("%5.1f

",c);

}

4、假定本程序执行时输入:

1357↙(↙代表回车换行符)结果是?

113468

#include

main()

{charc;

while((c=getchar())!

='\n')

switch(c)

{case'0':

case'1':

putchar(c);

case'2':

putchar(c);break;

case'3':

putchar(c);

default:

putchar(c+1);break;

}113468

printf("\n");

}

 

5、以下程序的运行结果是?

L=18.849556S=28.274333(%f隐含输出六位小数)

#defineR3.0

#definePI3.1415926

#defineL2*PI*R

#defineSPI*R*R

main()

{printf(“L=%f\nS=%f\n”,L,S);

}

 

6.以下程序的运行结果是?

输出:

s=20

Main()

{inti,s=0;

inta[8]={1,2,3,4,5,6,7,8};

for(i=0;i<=7;i++)

if(a[i]%2==0)s=s+a[i];

printf(“s=%d”,s);

}s=20

7.以下程序的运行结果是?

输出结果是:

LANGUAGEA

main()

{chara[]="language";

inti;

while(a[i])

{printf("%c",a[i]-32);i++;}

8以下程序运行后的输出结果是?

10,0。

main()

{intx=10,y=20,t=0;

if(x==y){t=x;x=y;}y=t;

printf(“%d,%d\n”,x,y);

}

9、有以下程序:

#include

main()

{charc;

while((c=getchar())!

=’?

’)putchar(--c);

}

程序运行时,如果从键盘输入:

Z?

N?

<回车>,则输出结果为?

Y。

10、以下程序运行后的输出结果是?

3,4,4,3。

voidfun(intx,inty)

{x=x+y;y=x-y;x=x-y;

printf(“%d,%d,”,x,y);}

main()

{intx=4,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

}

11、下面程序的运行结果是?

5,7。

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{intx=7,y=5,*p=&x,*q=&y;

swap(p,q);

printf(“%d%d\n”,*p,*q);

}

12、下面程序的运行结果是?

100。

typedefunionstudent

{charname[10];

longsno;

charsex;

floatscore[5];

}STU;

main()

{STUa[5];

printf(“%d\n”,sizeof(a));

}

13有以下程序,程序运行后的输出结果是?

:

c,C,B,c

voidfun(char*c,intd)

{*c=*c+1;d=d+1;

printf(“%c,%c,”,*c,d);

}

main()

{chara=’B’,b=’b’;

fun(&b,a);printf(“%c,%c\n”,a,b);

}

14有以下程序,运行后的输出结果是?

:

6

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;i<4;i++)j+=f(i);

printf(“%d\n”,j);

}

15有以下程序,运行后的输出结果是?

8,7

main()

{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘\0’};inti,j;

i=sizeof(a);j=strlen(a);

printf(“%d,%d\n”,i,j);

}

16以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,11};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

printf(“%d\n”,s);

}

程序运行后的输出结果是?

23

17有以下程序,程序运行后的输出结果是?

:

20

main()

{intaa[4][4]={{1,2,3,4},{5,7,7,8},{3,9,10,2},{4,2,9,6}};

inti,s=0;

for(i=0;i<4;i++)s+=aa[i][1];

printf(“%d\n”,s);

}

18有以下程序,程序运行后的输出结果是?

:

7

#include

main()

{char*p=“abcdefg\0hjik\0”;

printf(“%d\n”,strlen(p));

}

19程序中头文件typel.h的内容是:

#defineN5

#defineM1N*3

19\程序如下:

#include“type1.h”

#defineM2N*2

main()

{inti;

i=M1+M2;printf(“%d\n”,i);

}

程序编译后运行的输出结果是?

25

20有以下程序,程序运行后的输出结果是?

:

3020

#include

main()

{FILE*fp;inti=30,j=20,k,n;

fp=fopen("d1.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);

}

21有以下程序,程序运行后的输出结果是?

:

8

inta=3;

main()

{ints=0;

{inta=5;s+=a++;}

s+=a++;printf("%d\n",s);

}

22有以下程序,程序运行后的输出结果是?

:

abcDDfefDbD

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-'a'+'A';

s++;

}

}

main()

{charstr1[100]="abcddfefdbd",c='d';

ss(str1,c);printf("%s\n",str1);

}

23有以下程序:

程序运行后的输出结果是?

:

275.00

structstu

{charnum[10];flo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1