c语言复习 c-free 编译环境

更新时间:2024-06-23 23:23:01 阅读量: 综合文库 文档下载

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

一、选择题

1、C语言属于___A_____。

A、高级程序设计语言 B、汇编语言 C、机器语言 D、编译语言 2、下列正确的标识符是( A )。

A、hot_do B、a+b

C、test!

D、%y

3、下面的变量说明中( C )是正确的。

A、char:a,b,c; B、char a;b;c; C、char a,b,c; D、char a,b,c 4、请从以下表达式中选出a为偶数时值为0的表达式( D )。

A、a%2==0

B、!a%2!=0

C、a/2*2-a==0 D、a%2

5、表达式10!=9的值是( D )。

A、true

B、false

C、0

D、1

6、指出下面正确的输入语句是( B )。

A、scanf(\ C、scanf(\

B、scanf(\ %d\

D、scanf(\

7、下面不合法的常量是( D )。

A、‘\\2’

B、?”?

C、?a?

D、?\\483?

9、已定义x为float型变量,其值为213.45678,则printf(“%-4.2f\\n”,x);输出的结果是( A )。

A、213.46

B、213.45

C、-213.45 D、输出格式控制说明的域宽不够,不能输出

10、若已定义a为整型变量,则语句:a=2L;printf(“%d\\n”,a); 为( C )。

A、赋值不合法 B、输出值为-2 C、输出值为2 不确定

11、下面语句( D )是C语言正确的赋值语句。

A、a=1,b=2

B、i++;

C、a=b=5

D、y=(int)x;

D、输出值

12、C语言中,运算对象必须是整型的运算符是_____A_____。 A) % B) / C) %和/ D) * 13、为表示关系x≤y≤z,正确的C语言表达式是____A______。 A) (x<=y)&&(y<=z) B) (x>=y)AND(y>=z)

C) (x>=y>=z) D) (x>=y)&(y>=z)

14、若变量已说明为int类型,要给a,b,c输入数据,正确的输入语句是 D 。

A) read(a,b,c); B) scanf(“%d%d%d”,a,b,c); C) scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c); 15、在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符( C )。

A. 必须为字母

B. 必须为下划线

D. 可以是字母数字或下划线中的任意一种

C. 必须为字母或下划线

16、当A的值为奇数时表达式为“真”,A的值为偶数时表达式的值为“假”,则以下不能满足条件地表达式是(C )。

A. A%2==1

B. !(A%2==0)

C. !(A%2)

D. A%2

17、下列表达式的值为1的是( D )。 A.3%5

B.3/5.0

C.3/5

D.3<5

18、已知字符c的ASCII码值为99,语句printf(“%d,%c”,?c?, ?c?+1)的输出为(C )。

A.99,c

B.99,100

C.99,d

D.语句不合法

19、若x是单精度实型变量,k是基本整型变量,则以下错误的表达式是( A )。 A.x%k

B.x/k

C.x=k

D.x=x+k

20、下列程序( D )。

#include void main()

{ int x=0 ,y=0,z=0; if(x=y+z) printf(\ else printf(\}

A.有语法错误,不能通过编译 C.可以通过编译,连接出错

B.输出***

D.输出###

21、执行下列语句后的输出是( D )。

int x=-1;

if(x<=0) printf(\ else printf(\

A.**** B.%%%% 出错

C.-1 D.有语法错误,编译

22、设int c=5和int a, a=2+(c+=c++,c+8,++c), 则a=__B________。 A) 15 B) 14 C) 13 D) 16 c=c+c++ 23、设a为整形变量,不能正确表达数学关系:10

A) 10

B) a==11||a==12||a==13||a==14 D) !(a<10)&&!(a>=15)

C) a>10&&a<15

24、不合法的八进制数是____B____。

A) 0 B) 028 C) 077 D)01 25、下列运算符中优先级最高的是( A )。

A. ++

B. %

C. *(算术乘) D. =

26、自增自减运算只能作用于 ( B )。

A. 常量

B. 变量

C. 表达式

D. 函数

27、以下不正确的描述是(B )。

A. break语句不能用于循环和switch语句外的任何其它语句 B. 在switch语句中使用break语句或continue语句作用相同

C. 在循环语句中使用continue语句是为了结束本次循环而不是终止整个循环 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 28、以下不正确的描述是( C )。

A. 使用while和do-while时,循环变量初始化应在循环语句之前完成 B. while循环是先判断循环条件,后执行循环体语句 C. do-while和for都是先循环体,后判断循环条件 D. while、do-while和for的循环体都可以由空语句构成 29、以下对for语句的正确判断为( C )。

int a,b; a=100;

for(b=100;a!=b; a++,b++) printf(“*****”); A. 循环体只执行一次

B. 是死循环

C. 循环体一次也不执行 D. 输出*****

30、下列程序段的输出结果是( B )。

x=3; do

{ printf(\}while(!x); A. 321

B. 3

C. 21

D. 210

31、当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式是__D__。 A) (c=1)||(c=3)||(c=5) B) (c!=1)&&(c!=3)&&(c!=5)

C) (c==1)&&(c==3)&&(c=5) D) (c==1)||(c==3)||(c==5) 32、若k为整型,以下while循环___C_______次。 int k=10;

while (k=0) k=k-1;

A) 10次 B) 无限循环

C) 一次不执行 D) 执行一次

33、执行循环语句:for(k=1; k<4; k++); 后,变量k的值为___B_______。 A、 3 B、 4 C、 5 D、不定

34、C语言中,定义PI为一个符号常量,正确的是_____A_____。 A、 #define PI 3.14 B、 Define PI 3.14 C、 #define PI=3.14 D、 include PI 3.14 35、下列描述中不正确的是__C________。 A、字符型数组中可以存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出

D、不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 36、以下描述正确的是__C_____。 A、函数中,return后面一定要有表达式 B、函数中,不可以有多条return语句 C、函数返回值一定要通过return语句返回 D、return语句是函数中不可缺少的语句

37、在C语言的if语句中,用作判断的表达式为__B________。

A) 数值表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式 38、定义如下变量:int n=10; 则下列循环的输出结果是 B 。 while (n>7) { n--;

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

A) 10 B) 9 C) 10 D) 9 9 8 9 8 8 7 8 7 7 6 39、若k为整型,以下while循环__C________次。 int k=10;

while (k=0) k=k-1;

A) 10次 B) 无限循环

C) 一次不执行 D) 执行一次 二、判对错

( √ )任何变量都必须先声明其类型。

( ×)按格式控制符“%6.3f”输出i(设i=123.45)时,输出结果为23.450。 (√)在printf()中用格式控制符“%s”可以输出字符串。 ( √)表达式语句就是在表达式末尾加上分号。 (×)在C程序中,语句之间必须要用分号“;”分隔。 (√ )在C程序中所用的变量必须先定义后使用。 ( √)C程序中的注释部分可有可无,通常可以省略。 (√)在C程序中,APH和aph是两个不同的变量。

( ×)在C程序中,无论是整数还是实数,都能精确无误的表示。 ( √ )在C程序中,赋值运算符的优先级最低。

( × )若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a

中,b中的值将丢失。

( × )当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输

入实型值。

(×)break语句只能用在循环语句中。 (×)continue语句只能用于循环语句中。

( ×)C语言中的自定义函数中必须有return语句。

( √)在C语言中,sizeof(a)是求变量a所占字节数,它是一个函数。 三、填空

1、表达式10/3*9/2的值是 3 。

2、若定义char a;int b;float c;double d;,则表达式a*b+d-c的类型为 float 。

3、有如下输入语句scanf(\&a,&b,&c);为使变量a的值为1,b的值为2,c的值为3,则从键盘输入数据的正确形式为 a=1,b=2,c=3 。

4、设a为int型变量,则执行表达式a=25/3%3后a的值为 2 。 5、若有定义:int x=3,y=2;float a=2.5,b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值为 1 。

6、若有定义:char a=97,c; 则表达式c=?a?+?8?-?3?值为 f 。 7、用C语言的表达式描述a不能被b整除的式子是 a%b!=0 。 8、若x=3,y=2,z=1,表达式z+=(xb) max=a; else max=b;

if(c>max) max=c; 。

10、判断一个字符ch是否是字母或数字的逻辑表达式是 if((ch >=‘0'&& ch<='9') || (ch>=‘A’&& ch<=‘Z'||ch>=‘a' && ch<=‘z') 。 11、C语言中的逻辑运算符按优先级由高到低的排列是 !>&&和|| 。

12、表达式“5.5+1/2+85”的计算结果是 10 。 13、在C语言中,char型数据在内存中的存储形式是 ASCII 。 14、语句printf(“%f”,(int)(2.5*3)/3);的输出结果是 0.000000 。 15、设a=3,b=4,c=5,表达式a+b>c&&b==c为 0 ,表达式!(a>b)&&c||1的值为 1 。 16、

在字符常量中表示回车换行功能的格式字符常量为

\\n 。 17、

能表示一个整数n既是奇数又是3的倍数的表达式是

(n%2)&&(n%3) . 。 18、 19、

数组 int a[3][4];共定义了___12_________个数组元素。 判断

ch

是数字字符的

C

语言表达式为

ch>='0'&&ch<='9' 。 20、 21、

实型变量的类型说明符有:_double_______、_float___________。 判断ch是字母的C语言表达式为 (ch>='A'&&ch<='Z')|| (ch>='a'&&ch<='z') 。

24、表达式x<5 && x>10 的值为_____0__________________。 四、程序填空

1、以下程序是求出所有3位整数中各个数位的数字之和等于5的整数并输出。

#include void main() { int n,ng,ns,nb;

for(n=100; n<1000 ;n++) { ng=n;

ns=(n/10) ; nb=n/100;

if( ng+ns+nb==5 )printf(“%d\\n”,n); } }

2、程序填空。以下程序是计算1+2/3+3/5+4/7+5/9+……前20项之和。

#include void main() { int i,b=1; double sum; sum=0 ; for(i=1;i<=20;i++)

{ sum= sum +(double)i/b; b= b+2 ; }

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

3、程序填空。使用getchar()函数输入一个字符,用printf()输出;用scanf()函数输入一个字符,用putchar()函数输出。

#include void main() { char c;

printf(“Please input the first char:”); c=getchar() ; printf(“ %c\\n ”, c);

printf(“Please input the second char:”); scanf(“%c”, &c ); putchar(c) ; }

5、对除了是3的倍数以外的1~100的数求和。

#include main() { int s,i;

s=0;

for(i=1;i<= 100 ;i++) {

if ( i%3==0 ) continue; s=s+ i ; }

printf( \ }

6、以下程序用“辗转相除法”来求出两个正整数的最大公约数。请填空。若两个数分别放在m和n中,求最大公约数的算法如下:

#include

void main() { int r,m,n,t;

printf(“Enter m,n:”);

scanf(“%d%d”,_&m,&n_________); printf(“m=%d n=%d\\n”,m,n); if (m

{ t=m;m=n;n=t;} r= m%n;

while( _r!=n_______)

{m=n;n=__m%r__________;r=___m%n___________;} printf(“H.C.F=%d\\n”, n);

}

7、下面程序是从键盘输入的字符中统计数字字符的个数,用换行符(?\\n?)结束循环。

#include void main() {int n=0 ;char c;

c=getchar(); while( c!=?\\n? ) {

if(_c>='0' && c<='9' _)n++; c=getchar() ; } }

8、以下程序功能是:从键盘上输入若干学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

#include void main()

{float x,amax,amin; scanf(“%f”,&x);

amin=x, amax=x ; while( x>=0 )

{ if( x>amax ) amax=x; if(x

_scanf(\}

printf(“amax=%f\\t amin=%f\\n”,amax,amin); }

9、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。

若找到,打印此数后退出循环;若未找到,打印”not exit”。 #include void main()

{int i,a;

for(i=1;i<=10;i++) { scanf(“%d”,&a);

if( a%7==0 ) { printf(“%d”,a) ; break ; } }

if(i>10) printf(\) ; }

10、以下程序是用选择法对数组中10个整数由小到大排序。请填空。

#include main()

{ int i,j,k,t,a[10]={23,45,90,34,91,45,1,18,56,24}; for(i=0;i<9;i++)

{ k=i;

for(j=i+1;j<10;j++)

if( a[i]>a[j] ) k=j; if( k!=i )

{ t=a[i];a[i]=a[j];a[j]=t; }

}

printf(“the storted array;\\n”); for(i=0;i<10;i++)

printf(“%d”, a[i] );

}

11、以下程序是输出100以内能被3整除的数。

#include void main() {int i;

for(i= 1 ; i<=100;i++)

{if( i%3!=0 ) continue ; printf(“%d ”,i);

} }

五、编程序

1、求Sn=a+aa+aaa+……+aa…a之值,其a中代表1到9中的一个数字。例如:a代表2,则求2+22+222+2222+22222(此时n=5),a和n由键盘输. #include void main () {

int a,i,j,n,sm=0; scanf (\ for (i=1;i<=n;i++) {for (j=2;j<=i;j++) {if(i==1) break; else a=a*10+a;} sm=sm+a;} printf(\}

2、输入一个整数n,并求 1-1/3+1/5-… 的前n项和. #include void main () {int i,n;

float sum=0,a=1,b=1;

scanf (\for (i=1;i<=n;i++) {sum=sum+(a/b); a=-a;b=b+2; }

printf (\……1/n=%f\}

3、求1-100之间的所有偶数之和,并输出。 #include void main () {

int i,sum=0;

for (i=0;i<=100;i++) if(i%2==0)sum=sum+i; printf (\}

4、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153?13?53?33 #include void main () {

int a,b,c,n,i;

for(i=100;i<1000;i++) {a=i/100; b=(i/10); c=i;

n=a*a*a+b*b*b+c*c*c;

if (i==n) printf (\}

}

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

Top