c语言大作业综合

更新时间:2023-11-17 06:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章C语言简介及算法

一.选择题

1.一个C程序可以包含 的函数。

A.一个 B. 多个 C.若干 D.任意 2.下面不可以使用 来编译和连接一个C程序。

A.Turbo C B.VC++ C.C语言编译器 D.BC 3.C语言的程序一行写不下时,可以。

A.用逗号换行 B.用分号换行 C.在任意一空格处换行 D.用回车符换行 4.C控制语句有 种。

A.6 B.9 C.32 D.34 5.复合语句是用一对 界定的语句块。

A.{} B.[] C.() D.”

6.一个C程序的执行总是从该程序的 函数开始,在 函数最后结束。

A.第一个、最后一个 B.main、main C.主函数、最后一个 D.第一个、第一个 7. C语言提供的合法的数据类型关键字 。

A. Float B.signed C.integer D.Char 8.在以下各组标识符中,合法的标识符是 。

(1)A.B01 B.table_1 C. 0_t D. k% (2)A.Fast_ B. void C.pbl D. (3)A.xy_ B.longdoubleC.*p D.CHAR (4)A. sj B.Int C._xy D.w_y23 9. C语言的标识符里不能有 。

A.大小写字母 B.数字 C. . D.下划线 二.填空题

1.C程序是由 构成的,一个C程序中至少包含 。因此, 是C程序的基 本单位。

2.C程序注释是由 和 所界定的文字信息组成的。 3.函数体一般包括 和 。

4.算法是解决问题的 和 的描述。

5.C程序的注释部分可以出现在程序的 位置,它对程序的编译和运行 作用,但是可以增加程序的 。

第二章 C语言数据类型、基本运算及简单程序设计

一.选择题

1.不合法的字符常量是 。

A. ‘\\t’ B. “A” C. ‘a’ D.’\\x32’ 2.逻辑运算符两侧运算对象的数据类型。

A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据

3.下列表达式中, 不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。 A.x%2==0 B.!x%2!=0 C.(x/2*2-x)==0 D.!(x%2) 4.下面选项中,不是合法整型常量的是 。

A.160 B.-0xcdg C.-01 D.-0x48a

5.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。 A.(x>=1) && (x<=10) && (x>=200) && (x<=210) B.(x>=1) | | (x<=10) | | (x>=200) | | (x<=210) C.(x>=1) && (x<=10) | | (x>=200) && (x<=210) D.(x>=1) | | (x<=10) && (x>=200) | | (x<=210) 6.putchar ( )函数可以向终端输出一个 。

A.整型变量表达式值 B.实型变量值

C.字符串 D.字符或字符型变量值

7.在C语言中,要求参加运算的数必须时整数的运算符是 。

A./ B.* C.% D. =

1

8.在C语言中,字符型数据在内存中以 形式存放。

A.原码 B.BCD码 C.反码 D.ASCII码 9.下列语句中,符合语法的赋值语句是 。

A.a=7+b+c=a+7; B.a=7+b++=a+7; C.a=(7+b,b++,a+7); D.a=7+b,c=a+7; 10. 是非法的C语言转义字符。

A.‘\\b’ B. ‘\\0xf’C.‘\\037’ D.‘\\’’

11.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, 是正确的。

A.语法错误 B.f为5.0 C.f为0.0 D.f为2.0 12.与代数式(x*y)/(u*v) 不等价的C语言表达式是 。

A.x*y/u*v B.x*y/u/v C.x*y/(u*v) D.x/(u*v)*y

13.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 。

int a1,a2; char c1,c2;

scanf(“%d%d%c%c”,&a1,&a2,&c1,&c2);

A.10A 20B↙ B.10 A 20 B↙ C.10A20B↙ D.10 20AB↙ 14.C语言中整数-8在内存中的存储形式为 。

A.1111111111111000 B.100000000001000 C.000000000001000 D.1111111111110111 15.对于char cx=’ \\039’;语句,正确的是 。

A.不合法 B.cx的ASCII值是33 C.cx的值为四个字符 D.cx的值为三个字符 16.若int k=7,x=12;则能使值为3的表达式是 。

A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)

17.为了计算s=10!(即10的阶乘.,则s变量应定义为 。

A.int B.unsigned C.long D.以上三种类型均可 18.若w=1,x=2,y=3,z=4,则条件表达式w

main ( ) { int a,b;

scanf(“--=”,&a,&b); printf(“%d\\n”,a+b);

}

A.46 B.579 C.5690 D.出错

20.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。

A.n=(n*100+0.5)/100.0 B.m=n*100+0.5,n=m/100.0 C.n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0 二.填空题

1.在C语言中,一个char数据在内存中所占字节数为 ,其数值范围为 ;一个int数据在内存中所占字节数为 ,一个long数据在内存中所占字节数为 ;一个float数据在内存中所占字节数为 。 2.字符常量使用一对 界定单个字符,而字符串常量使用一对 来界定若干个字符的序列。

3.C语言中基本数据类型可以分为 , , , ;构造数据类型可以分为 , , , 。

4.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 。

5.自增运算符(++)或自减运算符(--)只能用于 ,不能用于 。 6.表达式5%(-3)的值是 ,表达式-5%(-3)的值是 。

7.已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是 。 8.已知int a=12,n=5;则:表达式运算后a的值各为 。 a+=a a-=2 a*=2+3 a/=a+a

2

n%=(n%=2) a+=a-=a*=a

9.设int a; float f; double i ;则表达式10+’a’+i*f值的数据类型是 。 10.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 。 三.读程序写运行结果 1.main ( ) {int a=-1;

printf(“%d,%u,%o,%x”,a,a,a,a); }

2.main ( )

{ int x=-1,y=4,k;

k=x++<=0 && !(y--<=0);

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

3.main ( ) { int a,b,c;

int x=5,y=10;

a=(--y==x++) ? –y : ++x ; b=y++ ; c=x ;

printf(“%d,%d,%d”,a,b,c); }

4.若运行时输入100↙,写出以下程序的运行结果。 main ( ) { int a ;

scanf(“%d”,&a);

printf(“%s”,(a%2!=0)?”No”:”Yes”); }

四.编程题

1.由键盘任意输入2个数,分别计算输出它们的和、差、积、商。

2.假设m是一个三位数,则输出将m的个位,十位,百位反序而成的三位数(例如:123反序为321。

3.已知int x=10,y=12;写出将x和y的值互相交换的表达式。

4.任意输入一个字符,输出此字符对应的ASCII码。

3

5.已知一个学生的4门功课的成绩,计算平均成绩。

第三章 分支

一.选择题

1. 下面的程序( ) #include main( )

{ int x =3,y =0,z =0;

if(x =y +z)printf(\ * * * *\); else printf(\# # # #\); }

A.有语法错误不能通过编译 B.输出 * * * *

C.可以通过编译,但是不能通过连接,因而不能运行 D.输出# # # #

2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(#include main( ) { int x;

scanf(\ %d \, &x);

if(x++>5)printf(\ %d\,x); else printf(\ %d\\n\, x--); }

A.7和5 B.6和3 C.7和4 D.6和4 3.以下程序的输出结果是( )

#include main( )

{ int a =-1,b =4,k;

k =(++a<0)&&! (b- -<= 0);

printf(\ %d%d%d \\n\,k,a,b);}

A.104 B.103 C.003 D.004 4.能正确表示a≥10或a≤ 0的关系表达式是( )

A.a >=10or a < =0 B. a >=10| a < =0 C.a >=10& &a < =0 D. a >=10||a < =0

5.假定所有变量以正确说明,下列程序段运行后x的值是( ) a=b=c=0;x =35; if(!a)x--;

else if(b); if(c) x=3;

else x=4;

4

A.34 B.4 C.35 D.3 6.表示关系X≤Y≤Z的c语言表达式为( )

A.(X < =Y)&&(Y< =Z. B.(X < =Y)AND(Y< =Z) C.(X < =Y< =Z) D.(X < =Y)&(Y <=Z) 7.如下程序的输出结果是( ) #include main( )

{ int a,b,c =246; a=c/100%9; b=(-1)& &(-1);

printf(\ %d,%d\\n\,a,b); }

A.2,1 B.3,2 C.4,3 D.2, -1 8.当a=1、b=2、c=5、d=5时,执行下面的程序后,x的值是( ) if(a

if(c

if(b

A.1 B.2 C.3 D.6 9.能正确表示a和b同时为正或同时为负的逻辑表达式是( )

A.(a>=0||bx>=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

10. 若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是_?_?_?。 A.switch(a +b); B. switch(a +b) { case 1:y =a +b;break; { case 3:

case 0:y =a -b;break; case 1:y =a +b;break; } case 3:y =b –a,break;}

C.switch a D. switch(a –b)

{ case c1:y =a -b;break; { default:y =a *b;break; case c2:x =a *b;break; case 3:case 4:x=a +b;break;

default:x =a +b; case 10:case 11:y =a -b;break; }

11.下列关于switch语句和break语句的结论中,正确的是( ) A.break语句是switch语句中的一部分

B.在switch语句中可以根据需要使用或不使用break语句 C.在switch语句中必须使用break语句 D.break语句只能用于switch语句中 12.设有说明语句“int a =1,b=0;”则执行以下语句后,输出为( ) switch(a) { case 1: switch(b)

{ case 0:printf(\ * * 0 * * \);break; case 1:printf(\ * * 1 * * \);break; }

case 2:printf(\ * * 2 * * \);break; }

A.* * 0 * * B.* * 0 * * * * 2 * * C.* * 0 * * * * 1 * * * * 2 * * D.有语法错误 13.以下关于运算符优先顺序的描述中正确的是( )

A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符

5

【9】

void main() {int n;

printf(\scanf(\

printf(\ 【10】 , 【11】 ); }

double factorial(int i) {double result=1.0; int j;

for(j=1;j<=i;j++) Resul t*=j; 【12】 ; }

3 以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的 所有整数,请填空。 main()

(int i,j; for(i=0;【13】;i++) {j=i*10+6;

if(【14】)continue; printf(\%d\,j); } }

4.下面函数invert的功能是将一个字符串的内容颠倒过来。 void invert (char str[ ] ) { int i, j, 【15】 ; for ( i =0, j=strlen (str) 【16】 ; i

五.程序改错

下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high由主函数传给函数fun。例如high的值为100,则函数的值为732。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:

#include #include #include #include int fun(int high)

46

{

int sum=0,n=0, j, yes; while(high>=2&&n<10) {

yes = 1;

for(j=2; j<=high/2; j++) if(high%j==0) {

yes=0; break } if(yes) {

sum+=high; n++; } high--; }

return sum; }

void main() {

system(\

printf(\}

六.编程题

从键盘输入三个正整数,求出它们的最大公约数,写出实现该功能的函数f()

main()

{int a,b,c,k;

printf(“enter three number:”); scanf(“%d%d%d”,&a,&b,&c); k=f(a,b); k=f(k,c)

printf(“%d”,k); }

int f(int m,int n)

47

本文来源:https://www.bwwdw.com/article/ubfv.html

Top