浙工大C语言复习题与参考答案.docx

上传人:b****5 文档编号:3986676 上传时间:2022-11-26 格式:DOCX 页数:39 大小:302.01KB
下载 相关 举报
浙工大C语言复习题与参考答案.docx_第1页
第1页 / 共39页
浙工大C语言复习题与参考答案.docx_第2页
第2页 / 共39页
浙工大C语言复习题与参考答案.docx_第3页
第3页 / 共39页
浙工大C语言复习题与参考答案.docx_第4页
第4页 / 共39页
浙工大C语言复习题与参考答案.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

浙工大C语言复习题与参考答案.docx

《浙工大C语言复习题与参考答案.docx》由会员分享,可在线阅读,更多相关《浙工大C语言复习题与参考答案.docx(39页珍藏版)》请在冰豆网上搜索。

浙工大C语言复习题与参考答案.docx

浙工大C语言复习题与参考答案

C程序设计复习题集

-、C语言程序设计复习题

1.单项选择题41

2•填空题45

3.写输出结果题46

4.程序填空题53

5•编程题61

三、C语言程序设计复习题答案

1单项选择题62

2•填空题63

3写输出结果题63

4程序填空题64

5.编程题(参考)65

C语言程序设计复习题

1单项选择题

在每小题的四个备选答案中选出一个正确的,并将正确答案号码填在题后括号内。

1.用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。

A、生成可执行目标文件B、生成目标文件

C、输出运行结果D、自动保存源文件

2.在C集成环境执行菜单命令“运行”,若运行结束且没有系统提示信息,说明()。

A、源程序有语法错误B、源程序正确无误

C、源程序有运行错误D、源程序无编译、运行错误,但仅此无法确定其正确性

3.程序运行输出了错误的结果,可以排除下列哪一个因素()。

A、算法错误B、运行时输入数据错误C、未通过编译D、系统资源配置不当

4.下列各个错误中,属于编译错误的是()。

A、数组下标超界B、“==”误写为“!

=”C、死循环D、括号不配对

5.若int类型数据字长为4,其最大值为()。

A、231B、231-1C、232-1D、232

6.

常数的书写格式决定了常数的类型和值,03322是()。

 

13.逻辑运算符中,运算优先级按从高到低依次为()。

A、&&,!

B、||,&&!

C、&&||,!

D、!

,&&||

14.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的()。

A、0为假非0为真B、只有1为真C、-1为假1为真D、0为真非0为假

15.表达式x==0&&y!

=0||x!

=0&&y=0等效于()。

A、x*y==O&&x+y!

=OB、x*y==O&&(x+y==O)C、x==O||y==OD、x*y=O||x+y=O

16.

表达式!

x||a==b

等效于()。

A

、!

((x||a)==b)

B、!

(x||y)==b

C、!

(x||(a==b))

D、(!

x)||(a==b)

17.

下列格式符中,

哪一个可以用于以

8进制形式输出整数(

)。

A

、%dB

,、%8d

C

、%oD、

%ld

18.

下列格式符中,

哪一个可以用于以

16进制形式输出整数(

)。

A

、%16d

B、%8x

C

、%d16D、

%d

19.a是int类型变量,c是字符变量。

下列输入语句中哪一个是错误的()。

A、scanf("%d,%c",&a,&c);B、seanf("%d%c",a,c);

C、scanf("%d%c",&a,&c);D、scanf("d=%d,c=%c",&a,&c);

20.字符变量ch='A',int类型变量K=25,语句printf("%3d,%d3\n",ch,k);输出()。

A、65,253B、65253C、65,25D、A25

21.下列各语句序列中,能够且仅输出整型变量a、b中最大值的是()。

A、if(a>b)printf("%d\n",a);printf("%d\n",b);

B、printf("%d\n",b);if(a>b)printf("%d\n",a);

C、if(a>b)printf("%d\n",a);elseprintf("%d\n",b);

D、if(a

22.

下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是()。

 

C、printf("%d",if(a>b)aelseb);D

24.

下列语句应将小写字母转换为大写字母,其中正确的是(

A、if(ch>='a'&ch<='z')ch=ch-32;B

C、ch=(ch>='a'&&ch<='z')?

ch-32:

”;D

25.求整数1至10的和并存入变量s,下列语句中错误的是()。

A、s=0;for(i=1;i<=10;i++)s+=i;B、s=0;i=1;for(;i<=10;i++)s=s+i;

C、for(i=1,s=0;i<=10;s+=i,i=i+1);D、for(i=1;s=0;i<=10;i++)s=s+i;

26.若sizeof(int)为2,计算1至10的乘积,下列语句序列中正确的是()。

A、intjc=1;for(inti=2;i<=10;i++)jc*=i;

B、for(floatjc=1,inti=2;i<=10;i++,jc*=i);

C、floatjc=1;for(inti=2;i<=10;jc*=i,i=i+1);

D、for(floatjc=1;i=2;i<=10;i++)jc*=i;

27.下列语句中,哪一个可以输出26个大写英文字母()。

A、for(a='A';a<='Z';printf("%c",++a));B、for(a='A';a<'Z';a++)printf("%c",a);

C、for(a='A';a<='Z';printf("%c",a++));D、for(a='A';a<'Z';printf("%c",++a));

28.与语句while(i>=0&&i<=10){if(i++==5)continue;printf("%f\n",1.0/(i-5));}

功能相同的是()。

A、for(;i>=0&&i<=10;i++)if(i!

=5)printf("%f\n",1.0/(i-5));

B、for(;i>=0&&i<=10;i++)if(i==5)printf("%f\n",1.0/(i-5));

C、for(;i>=0&&i<=10;i++)if(i!

=5)printf("%f\in",1.0/(i-5));elsebreak;

A、x+5/y-5B、x+5/y-5;C、(x+5)/(y-5)D、(x+5)/(y-5);

36.定义带参数的宏"#definejh(a,b,t)t=a;a=b;b=t”,使两个参数a、b的值交换,下

列表述中哪个是正确的()。

A、不定义参数a和b将导致编译错误B、不定义参数a、b、t将导致编译错误

B、不定义参数t将导致运行错误D、不必定义参数a、b、t类型

37.下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的()。

A、floatd,*p=d;B、floatd,*p=&d;C、float*p=&d,d;D、floatd,p=d;

38.对语句“inta[10],*p=a;”,下列表述中哪一个是正确的()。

A、*p被赋初值为a数组的首地址B、*p被赋初值为数组元素a[0]的地址

C、p被赋初值为数组元素a[1]的地址D、p被赋初值为数组元素a[0]的地址

39.p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的()。

A

、p2=*&p1;B、p2=**p1;C

、p2=&p1;

D、p2=*p1;

40.

假如指针p已经指向变量x,则&*p相当于()。

A

、xB、*pC

、&x

D

、**p

41.

假如指针p已经指向某个整型变量x,

则(*p)++相当于

F(

)。

A

、p++B、x++C

、*(p++)

D

、&x++

42.

数组定义为“inta[4][5];”,引用“

a+3表示()

A

、a数组第4列的首地址B

、a数组第

1行第4列兀素的值

C、a数组第4行的首地址D、a数组第1列第4行元素的值

43.数组定义为“inta[4][5];”,引用“a[1]+3”表示()。

A、a数组第2行第4列元素的地址B、a数组第2行第4列元素的值

C、a数组第4行的首地址D、a数组第1行第4列的首地址

 

2填空题

1.设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为。

2.设intx=17,y=5;执行语句x+=--x%--y后x的值为。

3.设intx=17,y=5;执行语句x%=x++/--y后x的值为。

4.设inta=7,b=6,c=5;,表达式(a+b)>(c*c)&&b==c||c>b的值为。

5.设inta=3,b=5,c=7;,表达式a>c||c>b!

=0&&c==b+a的值为。

6.已知三角形边长a、b、c和s=(a+b+c)/2,计算其面积的算术表达式为。

7.方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式

为。

8.p为本金,r为1年期存款年利率,计算存款p元5年到期时本金、利息总和(计复利)

的算术表达式为。

9.将数学式(x+1)e2x写作算术表达式为。

10.ch是字符变量,判断ch为大写英文字母的逻辑表达式为。

11.判断int类型变量n是否为两位整数的逻辑表达式为。

12.判断变量a、b的值均不为0的逻辑表达式为。

13.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为。

14.判断变量a、b中必有且只有一个为0的逻辑表达式为。

15.m是值为两位数的整型变量,判断其个位是奇数而十位数是偶数的逻辑表达式为。

16.求解赋值表达式a=5+(c=6)后表达式值、a、c的值依次为。

17.求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为。

18.求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为。

19.求解逗号表达式(a=15,a*4),a+5,表达式值、a的值依次为。

20.求变量a、b中最大值的条件表达式为。

21.若a=13、b=25、c=-17,条件表达式((y=(a

a:

b)

y:

c的值为。

22.若s='d',执行语句s=(s>='a'&&s<='z')?

s-32:

s;字符变量s的值为。

23.整型变量x的值为25,语句"printf("%o",x);"的输出结果为。

24.整型变量m的值为27,语句printf("m=%x",m);的输出结果为。

25.语句printf("s%s","mall");的输出结果为。

26.若intk=10,循环语句while(k=0)k=k-1;执行次。

27.若intk=2,循环语句while(k!

=0){printf("%d",k);k--;}执行次。

28.若inti=10,s=0;,执行语句while(s+=i--,--i);后s、i值分别为。

29.语句for(ints,i=1;i<=100;s+=i,i++);能否计算1〜100的和?

原因是。

30.若int类型变量字长为2,程序段intjc=1;for(inti=2;i<10;i++)jc*=i;能否计

算10的阶乘?

原因是。

31.定义a为共有10个元素的静态存储int类型数组的语句为。

32.定义a为长度为10的字符串、同时为字符串赋初值"continue"的语句为。

33.定义a为共有5个元素的一维整型数组、同时定义p为指向a数组首地址的指针变量的

语句为。

34.定义a为4行5列的整型数组、同时定义p为指向a数组首地址的指针变量的语句为_。

35.如定义语句为"chara[]="windows",b[]="95";”,

 

语句"printf("%s",strcat(a,b));"

的输出结果为

36.

定义语句为chara[15],b[]="windows95";,则语句printf("%s",strcpy(a,b));

的输出结果为

37.

定义chara[]="Box",b[]="Boss";

,语句printf("%d",strcmp(a,b));输出

38.

定义chara[10]="student";,语句

"printf("%d",strlen(a));'

"输出结果为

39.

定义chara[]="WINDOWS";,语句printf("%s",strlwr(a));

输出

40.

定义chara[]="hangzhou",*p=a;,

执行for(inti=O;*p!

='\O';p++,i++);

后i的值为

41.

宏疋义#definef(x,y)printf(x,y)

的引用f("%d\n",m);

置换展开后为

42.

宏疋义#definef(x,y)fopen(x,y)

的引用f("a.txt","rw");

置换展开后为

43.

宏定义#definef(c)c>='A'&&c<-'Z'

的引用f(x[i])

置换展开后为

44.

表达式3&5、3|5、3||5的值分别为

、、

45.

设intx-707,表达式xAx、x|x、

~xAx的值分别为

、、。

O

O

O

O

O

O

O

46.设intx=0707

47.

48.

49.

50.

函数的参数为

函数的参数为

函数的参数为

,表达式~x&&x、!

x&&x、x>>3&~0的值分别为int类型时,虚参与实参结合的传递为

类型时,虚参与实参结合的传递为

类型时,虚参与实参结合的传递为

虚参与实参结合的传递为

f(3)的返回值是

floatchar*

函数的实参为常量时,

51.对下列递归函数,函数调用

intf(intn){return((n==0)?

1:

f(n_1)+2);}

52.函数f定义如下,调用f("1475")的返回值为。

intf(char*s){intk=0;while(*s)k+=*s++-'O:

returnk;}

53.函数change定义如下,a=10、b=5,执行change(a,b)后a、b的值分别为

voidchange(inta,intb){intt=0;t=a;a=b;b=t;}

54.开辟一个存储n个int数据的内存区、并将内存区首地址送入p(指向int类型的指针

变量)的语句为。

55.释放由p所指向的内存区的语句为_

56.fp为文件位置指针,将fp移到离当前位置25个字节处的语句为。

 

3写输出结果题

1.#include

voidmain()

{charch;intk=0;

for(ch='A';ch<'H';ch++,k++)if(k%2==0)printf("%c",ch);

printf("\n");

}输出结果:

2.#include

voidmain()

{intk=0;

charc='A';

do{

switch(c++){

case'A':

k++;break;

case'B':

k--;

caseC:

k+=2;break;

case'D':

k=k%2;break;

case'E':

k=k*10;break;

default:

k=k/3;

}

k++;

}while(cv'G');

printf("k=%d\n",k);

}输出结果:

3.#include

voidmain()

{inta[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;

for(i=0;i<6;i++){

for(j=0;j<6;j++)if(a[i]==b[j])break;

if(j<6)printf("%d”,a[i]);

}

printf("\n");

}输出结果:

4.#include

voidmain()

{inta[8]={1,0,1,0,1,0,1,0},i;

for(i=2;i<8;i++)a[i]+=a[i-1]+a[i-2];for(i=0;i<8;i++)printf("%d",a[i]);

printf("\n");

}输出结果:

5.#include

voidmain()

{ints=1,t=1,a,n;

scanf("%d%d",&a,&n);for(inti=1;i

}

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

}

6.#include

#definePR(x,y)printf("%s=\t%d\n",x,y)voidmain()

{intx=3,y=2,z=1;

PR("x|y&z",x|y&z);PR("xAy&~z",xAy&~z);

PR("x&y&z",x&y&z);x=1;y=-1;

PR("!

x|x",!

x|x);PR("~x|x",~x|x);

}

输入数据:

2,4

输出结果:

输出结果:

7.#include

voidmain()

{inta[5]={2,4,6,9,12},b[6]={2,3,4,6,8,9};for(inti=0;i<5;i++)for(intj=0;j<6;j++)if(*(a+i)==*(b+j))printf("%d",*(a+i));

printf("\n”);

}

输出结果:

8.#inelude

#inelude

voidmain()

{charstr1[]="*******";

for(inti=0;i<4;i++){

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

str1[i]='';str1[strlen(str1)-1]='\O';

}

}

9.#include

voidmain()

{chara[5][8];

for(inti=0;i<5;i++)for(intj=0;j<8;j++)if(i==0||i==4)a[i][j]='-';elsea[i][j]='';

for(i=1;i<4;i++){a[i][0]='|';a[i][5]='|';}for(i=0;i<5;i++)a[i][6]='\0';for(i=0;i<5;i++)printf("%s\n",a[i]);

}

输出结果:

 

10.#include

voidmain()

{chara[8],temp;inti,j;

for(i=0;i<7;i++)a[i]='a'+i;

for(i=0;i<3;i++){

temp=a[0];for(j=1;j<7;j++)a[j-1]=a[j];a[6]=temp;a[7]='\0:

printf("%s\n”,a);

}

}

11.#include

voidmain()

{inti,j,n;

for(i=0;i<4;i++){

for(j=1;j<=i;j++)printf("");

n=7-2*i;

for(j=1;j<=n;j++)printf("%1d",n);

printf("\n");

}

}

12.#include

voidmain()

{chara[8],temp;intj,k;

for(j=0;j<7;j++)a[j]='a'+j;

a[7]='\0';

for(j=0;j<3;j++){

temp=a[6];for(k=6;k>0;k--)a[k]=a[k-1];

a[0]=temp;printf("%s\n",a);

}

}

13.#include

voidprint(int,char,int);

voidmain()

{print(3,'*',1);print(2,'*',3);

print(1,'*',5);print(2,'#',3);

print(2,'#',3);

}

voidprint(intbegin,charpzf,intn)

{chara[50];

for(inti=0;i

for(i=0;i

输出结果:

输出结果:

输出结果:

输出结果:

 

运行时输入:

5-73

输出结果:

输出结果:

H

a[begin+i]='\O:

printf("%s\n",a);

}

14.#include

voidmain()

{inta,b,c,find(int,int,int);

scanf("%d%d%d",&a,&b,&c);

printf("%d\n%d,%d,%d\n",find(a,b,c),a,b,c);

}

intfind(inta,intb,intc)

{intu,s,t;

u=((u=(a>b)?

a:

b)>c)?

u:

c;

t=((t=(a

a:

b)

t:

c;

s=a+b+c-u-t;a=u;

b=s;c=t;returns;

}

15.#include

voidfun1(intn,inta[][3])

{for(inti=0;i

for(intj=O;j

}

voidmain()

{inta[3][3]={{6,4,2},{8,6,4

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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