c语言试题及答案(20200724080541)

c语言试题及答案(20200724080541)


2024年5月16日发(作者:)

第 1 章

C 语

习 题

1.

(1)

A.

单项选择题

C语言是在

回车符 B.

B

冒号

语言的基础上产生的。

C. 逗号

D.

分号

在C语言中, 每个语句必须以

A.

回车符 B. 冒号 C.

C

C.

D

逗号

束。

分号

D.

A.

标识符和关键字间,要用

回车符 B. 冒号

隔开 。

空格

D.

分号

用C语言编与的源文件经过编译, 若没有产生编译错误,

则系统将

B )。

A.

C. 输出运行

结果 D.自动保存源文件

(5) 下列说法中正确的是

B )。

A.

B.

由于C源程序是高级语言程序,因此一定要在 TC软件中 输入

由C源程序是字符流组成,因此可以作为文本文件在任何

生成可执行目标文件 B. 生成目标文件

文本编辑的软件中输入

C.

D.

由于C程序是高级语言程序,因此输入后即可执行

由于C程序是高级语言程序,因此它由命令组成

(6) 下列说法中正确的是

A )。

A. C语言程序由主函数和

程序和子程序组成

0个或多个函数组成 B. C语言程 序由主

C. C语言程序由子程序组成

程组成

D. C语言程序由过

下列说法中错误的是

(

D)。

A. 主函数可以分为两个部分:主函数说明部分和主函数体

B. 主函数可以调用任何非主函数的其他函数

C. 任何非主函数可以调用其他任何非主函数

D. 程序可以从任何非主函数开始执行

2.填空题

(1) C语言只有37 个关键字和 9 种控制语句。

C语言是一种“中级语言”,既具有高级语言的特点又 具有低级语言

应用程序。

(3) 每个源程序有且只有一个 丄—函数,系统总是从该函数

的特点;既适合于开发系统软件又适合于编写

开始执行C语言程序。

(4) 在C语言程序中允许出现的字符集是 ASCII码字符集

—保留字 。

C 语言的程序中有特殊含义的英语单词称为

(6) C语言标识符的长度是前__8 _____ 位有效。

(7) C语言中,标识符的定义规则是 以字母或下划线为开

头_。

(8) C语言程序的注释可以出现在程序中的任何地方,它总是

*/ 符号作为结束标记。 以£—符号作为开始标记,以

第2章数据类型运算符和表达式习题

1. 单项选择题

(1) 以下选项中,正确的 C语言整型常量是 _D ______

B. 510000 C. -1.00 D. 567

语言字符型常量。

A.32L

A. 'a'

以下选项中, D

B. 'x41'

是不正确的C

D. "a" C. '101'

语言

在C

中,

形式存储。

字符型数据在计算机内存中, 以字符的

C

A.

原码

(4)

B.

反码 C. ASCII

C 。

码 D. BCD 码

字符串的结束标志是

A. 0 B. '0' C. '0' D. "0"

(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从 高到低

依次为_B_。

A.算术运算、赋值运算、关系运算

运算、赋值运算

C.关系运算、赋值运算、算术运算

运算、赋值运算

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

,&& ! C. &&

D 。

D. 关系运算、算术

B. 算术运算、关系

A. &&,!,|| B. ||

&& II

,||,! D. !

表达式

x||a==b 等效于D 。

A. !((x||a)==b)

D. (!x)||(a==b)

(8)

B. !(x||y)==b

C. !(x||(a==b))

设整型变量

m,n,a,b,c,d

均为 1,执行(m=a>b)&&(n=c>d)

后,m,n 的值是

A.

0 B. 0

0,

(9)

A 。

,0 D. 1

,1 C. 1 ,1

x, b的

int b=0 , x=1 ;执行语句

,0 C. 3

if(x++) b=x+1;

值依次为A

A.

3 B. 2

2,

,0 D. 3 ,2

后,变

(10)

设有语句int a=3 ;,则执行了语句 a+=a-=a*=a;

量a

A. 3

的值是 B

B. 0 C.

9 D. -12

D

(11)

在以下一组运算符中,优先级最低的运算符是

A. * B. != C. + D.=

表达式(++i)+(++i)+(++i)

(12)

设整型变量 i值为2,

的结果

是B

A. 6 B. 12 C .15 D.

表达式出错

(13) 若已定义x 和y为double 类型,则表达式x=1 ,y=x+3/2

的值是__C ___ 。

为整型)

A. 1 B. 2 C. 2.0 D. 2.5

(14) size of (double) 的结果值是 A 。(表是长度)字节

A. 8 B. 4 C. 2 D. 出错

(都

(15) 设 a=1 , b=2, c=3, d=4,则表达式:a

的结果为_D ____ 。

A. 4 B. 3 C. 2 D. 1

(16) 设a为整型变量,不能正确表达数学关系:10

言表达式是_A _____ 。

A. 10

|| a= =14

C. a>10 && a<15 D. !(a<=10) && !(a>=15)

B. a= =11|| a= =12 || a= =13

(17) 设f是实型变量,下列表达式中不是逗号表达式的是

D ____ 。

A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0,

f=(3.2, 1.0)

(18) 设ch是char型变量,其值为'A',则下面表达式的值是

B。

ch=(ch>='A'&& chv='Z')? (ch+32):ch

A. A B. a C. Z D. Z

(19) 以下运算符中,结合性与其他运算符不同的是

A. ++ B. % C. / D. +

(20) 以下用户 标识符中,合法的是_B—。

A. int B. nit C. 123 D. a+b

(21) C 语言中,要求运算对象只能为整数的运算符是

%

A 。

f>0 D.

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

(22) PC 机中,’n'在内存占用的字节数是

A. 1 B. 2 C. 3 D. 4

A

O

(23) 字符串"ABC"在内存占用的字节数是 __B ____

A.

3 B. 4 C. 6 D. 8

(24) 要为字符型变量 a赋初值,下列语句中哪一个是正确的

B ____ 。

A. char a="3"; B. char a=' 3' ; C. char a=%; D.

char a=*;

(25) 下列不正确的转义字符是__C _____

A. B. ' C. 074 D. 0

2. 填空题

(1) C语言中的逻辑值“真” 是用! 0表示的,逻辑值“假”

是用__0 __ 表示的。

(2)

(3)

符号常量的定义方法是 #define N 10

无符号基本整型的数据类型符为

unsigned int ,双精

度实型数据类型符为

char 。

(4)

double ________ ,字符型数据类型符为

设 c='w',a=1,b=2,d=-5,

-a-5*b<=d+1, b==a=2

则表达式'x'+1>c,

的值分别

'y'!=c+2,

为 _d __ 、

(22) PC 机中,’n'在内存占用的字节数是 A

O

0 、_1 ______ 、 表达式错误 _____ 。

设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值

为 2.5 。

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

(a!=0)&&(b!=0) ______ 。

(7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c的

后,表达式值、x、a的值依

值依次为4,4,10,6

(8) 求解逗号表达式x=a=3,6*a

。 次为 18,3,3

(9) 数学式a/(b*c)的C语言表达式 a/(b*c) 。

第3章顺序结构程序设计习题

1. 选择题

(1) printf("f=%3.2f %%3.478);的输出结果是

A

A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8%

(2) printf("%c,%d",'a', 'a') ;的输出结果是

A

A. a,97 B. a 97 C. 97,a D. 97 a

(3) scanf("%c"

&a);若要给变量输入大写字母 A,则以下正

确的输入是_B_。

A. 'A' B. A

D.以上都不对

C. "A"

若一个int类型的数据占2字节,则程序段:int

x=-1;printf("%u,%d",x,x);

A. 65535, -1 B. -1,65535

的输出结果是

A

C. 32767, 32768 D.

32768,32767

(5) 在 TC 中,getchar、putchar、printf 、scanf 四个函数,

均包含在头文件__B ____

中。

A. math.h B. stdio.h C. stbio.h D.

stdlib.h

(6) 复合语句是用__C ____ 括起来的语句组。

A. ( ) B. [ ] C. { } D. < >

下列格式符中,哪一个可以用于以八进制形式输出整数

C_。

A. %d B. %8d C. %o D. %ld

(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数

B_。

A. %16d B. %8x C. %d16 D. %d

(9) a是int类型变量,c是字符变量,下列输入语句中哪一个

是错误的__B ____ 。

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

C. scanf("%d%c", &a,& c);

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

(10) 要使double x; long a; 的数据能正确的输出,输出语句

应是__D __ 。

A. printf("%d, %f",a, x);

B.

printf("%d, %1f",a, x);

D.

C. scanf("%1d, %1f",&a, &x);

printf("%1d, %lf",a, x);

D.

2. 程序改错题 ( 以下各个程序段均有 5 个错误,请先找出错误 的位

置,然后再改正 )

(1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。 #include

"stdio.h"

mian() //main()

{ char c // char c; getchar(c);//c = getchar();

putchar('007') ; /*

c=putchar(); //putchar(c);

//}

(2) 以下程序的功能是, 输入长方形的两边长 ( 边长可以取整数 和实

鸣笛 */

数 ) ,输出它的面积和周长。

main //main()

{

int a,b, s,l; //double a,b,s,l;

scanf("%d,%d",&a,&b); //scanf("%lf,%lf",&a,&b); s=a*b;

l= a+b; //l=(a+b)*2; printf("l=%f,s=%fn",l );

//printf(" l=%lf,s=%lfn ",l,s);

}

3. 写出程序运行结果

(1)

main()

{

int a,b;

scanf("%2d %*2s%2d",&a,&b); printf("%dn",a+b);

}

运行时输入:输出 :68

(2)

main()

{

int a=3,b=5,x,y;

x=a+1 , b+6; y=(a+1 , b+6);

printf("x=%dny=%dn",x,y);

}

y=11

输出: x=4

第 4 章 选择结构程序设计习题

1. 单项选择题

(1) 选择结构程序设计的特点是 —B ____ 。

A.自上向下逐个执行 B. 根据判断条件,选择其中一

个分支执行

C.反复执行某些程序代码 D. 以上都是

x的值是 (2) 假定所有变量均已正确定义,下列程序段运行后

B

O

a=b=c=O, x=35;

if(!a) x--; else if(b); if(c) x=3; else x=4;

A. 34 B. 4 C. 35 D. 3

(3) 下面的程序片段所表示的数学函数关系是

if(x<0) y= -1;

else if(x>0) y=1;

else y=0;

(4) 下列各语句序列中,能够且仅输出整型变量

的是

(

C )

O

A. if(a>b) printf("%dn",a); printf("%dn",b);

B. printf("%dn",b); if(a>b) printf("%dn",a);

C. if(a>b) printf("%dn",a); else printf("%dn",b);

D. if(a

(5) 以下程序段的输出结果是

_A _____

int x=5;

if(x>0) y=1;

A

O

a、b中最大值

else if(x==O) y=0;

else y= 1;

printf("%d",y);

A. 1 B. 5 C. 0 D. 2

(6) 程 序 段 int x=5,y=8,max; max=(x>y)?x:y; printf("%d",max); 的

输出结果是 B 。

A. 5 B. 8 C. 3 D. 13

(7) 程序段 int x=3,a=1;switch(x) {case 4: a++;case 3:

的输出结果 a++;case 2: a++;case 1: a++;} printf ("%d",a);

是 D ____ 。

A. 1 B. 2 C. 3 D. 4

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

(B )。

(ch>='a'&chv='z') ch=ch-32;

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

C. ch=(ch>='a'&&ch<='z')?ch- 32:'';

D. ch=(ch>'a'&&chv'z')?ch-32:ch;

2. 阅读程序,写出运行结果

(1)

void main ()

if(a

if(a

{

int a=10, b=4, c=3; b, c);

printf("%d, %d, %dn", a,

}

输出: 10,4, 3

(2) void main ( )

{

int x=100, a=10, b=20, ok1=5,

ok2=0;

(3)

int k,a=1,b=2; k=(a++==b) ? 2:3;

printf("%d",k);

输出: 3

(4) void main()

{

int s=1,k=0;

switch (s)

{

case 1: k+=1; case 2:

k+=2; default: k+=3;

}

if(a

else if(ok2) x=10;

else x=-1;

printf("%dn", x);

}

输出: -1 ;

printf( “%d” ,k);

} 输出: 6

(5) void main()

{

int s=1,k=0;

switch (s)

{

case 1: k+=1;break; case

2: k+=2;break; default:

k+=3;

}

printf( “%d” ,k);

}

输出: 1

第5章循环结构程序设计习题

1.单项选择题

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

A. 7 B. 8 C. 9 D. 10

该循环共执行了 _B __ 次

int a=2;while(a=0) a--;

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

该循环共执行了

A

次。

执行完循环for(i=1;i<100;i++); 后,i的值为_B_

A. 99 B. 100 C. 101 D. 102

⑷以下for语句中,书写错误的是

A. for(i=1;i<5;i++); B. i=1;for(;i<5;i++);

C. for(i=1;i<5;) i++; D. for(i=1,i<5,i++);

D

(5) _C ____ 语句,在循环条件初次判断为假,还会执行一次循环体

A. for B. while C. do-while D.

以上都不是

循环结构的特点是

A.从上至下,逐个执行

一个分支

C 。

B.

根据判断条件,执行其中

C.满足条件时反复执行循环体

(7) i 、j已定义为int

是 A

D. 以上都对

类型,则以下程序段中内循环体的执行次数

for(i=5;i;i--)

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

...}

A. 20 B. 24 C. 25 D. 30

(8) C 语言 while 语句中,用于条件的表达式是

A.关系表达式

达式

D

D. 任意表

B.

逻辑表达式 C. 算术表达式

(9) int a=1, x=1;

循环语句 while(a<10) x++; a++;

的循环执行

D 。

A.无限次 B.

(10)卜列程序段执行后

不确定次 C. 10

s的值为A

D. 9

int i=1, s=0; while(i++) if(!(i%3)) break ; else s+=i ;

A. 2 B. 3 C. 6

D.

以上均不是

2.填空题

(1)三种循环语句是

⑵当循环体中的

等价价的。

switch语句内有break语句, 则只跳出 swicth 语

句。同样,当switch语句中有循环语句,内有 break 语句,则只跳 出 循环

语句。

(3) 循环体执行遇到

环 ____ 。

(4) 下列程序的功能是输入一个正整数,判断是否是素数,若为素数 输出

1,否则输出0,请为程序填空。

void main()

{

int i, x, y=1;

continue 语句时 跳过本次循环进入下次循

scanf("%d", &x);

for(i=2; iv=x/2; i++)

if ( x%i==0 ) { y=0; break; } printf("%dn",y);

}

(5) 输入N个实数,输出其中的最大值、最小值

#include

void main()

{

int n,i;

float no1,nmax,nmin;

scanf("%d",&n); scanf("%f",&no1);

nmax=no1;

nmin=no1 ;

for(i=2;i<=n ;i++)

{

scanf("%f", & no1 ! _______

if(no1>nmax) nmax=no1;

if(no1

}

printf("MAX=%f MIN=%fn",nmax,nmin);

(6) 输入若干个字符,分别统计数字字符的个数、英文字母的个数,

当输入换行符时输出统计结果,运行结束

#include void main()

{

char ch;

int s1=0,s2=0 ; ___

while(( ch=getchar() )!='n')

{

if(ch>='0'&&chv=9) s1++;

if(ch>='a'&&ch<='z' || ch>=' A ||ch<= ' Z'

}

}

3•阅读下列程序,写出程序运行的输出结果

(1) 输出:852

void main( ) (2)main()

{ int y=9; int k,n,m;

for( ;y>0; y--) n=10;m=1;k=1;

if(y%3==0)

while(k++v=n)

continue;}

m*=2;

}

{ printf("%d", --y);

printf("%dn",m);

{

)s2++;

}

输出: 1024

(3) void main ( )

{ int i=5;

do

{switch (i%2)

{case 4: i--;

break;

case 6: i--;

continue;

}

i-- ; i-- ;

printf("i=%d ",

i);

} while(i>0);

}

输出: i=3 i=1 i=-1

(4) #include void main( )

{

int k=0; char c='A';

do

{

switch(c++)

{

case 'A': k++; break;

case 'B': k--;

case 'C': k+=2;

break;

case 'D': k=k%2;

break;

case 'E': k=k*10;

break;

default: k=k/3;

}

k++;

}while(c<'G');

printf("k=%dn", k);

}

输出: 8

(5) 输入数据: 2,4

#include

void main()

t=t*1O+1;

s=s+t;

s*=a;

printf("SUM=%dn",s);

{

int s=1,t=1,a,n;

int i

scanf("%d , %d",&a,&n); }

for(i=1;i

4.程序改错

(1)以下程序是显示[200 , 300]所有能被7整除的数,每行显示

个数,此程序有5处错

main()

{

int i,n=0; /*n 用来记录每行已打印数的个数

while(i<300) 〃while((i <= 300)&&(i >= 200))

{ 〃i++

if(i%7==0) 〃if(i%7!=0)

break; //continue;

printf("%5d",i);

n=n+1;

if(n=5)/* 满 5 个换行 */ 〃if(n == 5)

{

printf("n");

*/

5

n=0;

printf("n");

}

}

}

(2)

1!+2!+3!+4!+5!+6!+7

main()

{

int i,s,t=O; //long s = 0,t = 1;

〃int i;

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

{

s=0; // 去掉该语句

t=t*i;

s=s+t;

}

printf("sum=dn",s); 〃printf(

}

第6章函数习题

1. 单项选择题

(1) C语言总是从_A _____ 函数开始执行。

A. main B.

选一个

(2) 函数在定义时, 省略函数类型说明符,

以下程序是求

!的值,其中有 3处错误。

“ sum=%lc” ,s);

处于最前的 C.处于最后的 D. 随机

则该函数值的类型为


发布者:admin,转转请注明出处:http://www.yc00.com/web/1715820523a2676687.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信