文档库 最新最全的文档下载
当前位置:文档库 › C语言基础练习题(含答案)

C语言基础练习题(含答案)

C语言基础练习题(含答案)
C语言基础练习题(含答案)

第一章C语言基础知识

1.1 选择题

1. 以下不是C语言的特点的是()。

A、语言简洁紧凑

B、能够编制出功能复杂的程序

C、C语言可以直接对硬件操作

D、C语言移植性好

2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok

3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?

4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2a

define _123 -abc DO

WORD IF Case sizeof

5.下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\0

6.不属于C语言关键字的是()。

A.int B.break C.while D.character

7.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char

8.以下不能定义为用户标示符的是()。

A.scanf B.V oid C._3com_ D.int

9.一个C程序是由()。

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

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

10. C语言程序的基本单位是()。

A.程序行B.语句C.函数D.字符

11.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外

C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数

12.以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main( )函数中定义

C.C语言程序总是从main( )函数开始执行

D.C语言程序中的main( )函数必须放在程序的开始部分

13. C 编译程序是( )。

A .C 程序的机器语言版本

B .一组机器语言指令

C .将C 源程序编译成目标程序

D .由制造厂家提供的一套应用软件 14.以下选项中,合法的用户标识符是( )。

A .long

B ._2abc

C .3dmax

D .A.dat 15.以下选项中,合法的实型常数是( )。

A .5E2.0

B .E-3

C .2E0

D .1.3E

16.已知大写字母A 的ASCII 码值是65, 小写字母a 的ASCII 码是97,则用八进制表示的

字符常量’\101’是( )。

A .字符A

B .字符a

C .字符c

D .非法的常量 17.以下选项中, 合法转义字符的选项是( )。

A .’\\’

B .’\018’

C .’xab ’

D .’\abc ’ 18.以下选项中,正确的字符常量是( )。

A .”F ”

B .’\\’’

C .’W ’

D .’’ 19.以下选项中可作为C 语言合法整数的是

A .10110

B B .0386

C .0Xffa

D .x2a2

20.下列变量定义中合法的是

A .short _a=1-.le-1;

B .double b=1+5e2.5;

C .long do=0xfdaL;

D .float 2_and=1-e-3;

21.与数学式子1

29 x x n

对应的C 语言表达式是( )。

A .9*x^n/(2*x-1)

B .9*x**n/(2*x-1)

C .9*pow(x,n)*(1/(2*x-1))

D .9*pow(n,x)/(2*x-1) 22.若有代数式

cd

ab

3,则不正确的C 语言表达式是( )。 A .a/c/d*b*3 B .3*a*b/c/d C .3*a*b/c*d D .a*b/d/c*3 23.已知各变量的类型说明如下: int m=8,n, a, b;

unsigned long w=10; double x=3.14, y=0.12;

则以下符合C 语言语法的表达式是( )。

A .a+=a-=(b=2)*(a=8)

B . n=n*3=18

C .x%3

D .y=float (m) 24.以下符合C 语言语法的赋值表达式是( )。

A .a=9+b+c=d+9

B .a=(9+b, c=d+9)

C .a=9+b, b++, c+9

D .a=9+b++=c+9

25. 已知字母A 的ASCII 码为十进制数65,且S 为字符型,则执行语句S=’A ’+’6’-’3’;

后,S 中的值为( )。

A .’D ’

B .68

C .不确定的值

D .’C ’ 26.在C 语言中,要求运算数必须是整型的运算符是( )。

A ./

B .++

C .*=

D .% 27.若有说明语句:char s=’\72’;则变量s ( )。

A.包含一个字符

B.包含两个字符

C.包含三个字符

D.说明不合法,s的值不确定

28.若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x+y)%2/4的值是()。

A.2.500000 B.2.750000 C.3.500000 D.0.000000

29.在C语言中,char型数据在内存中的存储形式是()。

A.补码B.反码C.原码D.ASCII码

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

A.x=(x*100+0.5)/100.0

B.m=x*100+0.5, x=m/100.0

C.x=x*100+0.5/100.0

D.x=(x/100+0.5)*100.0

31.表达式13/3*sqrt(16.0)/8的数据类型是()。

A.int B.float C.double D.不确定

32.设以下变量均为int类型,则值不等于7的表达式是()。

A.(m=n=6, m+n, m+1)

B.(m=n=6, m+n, n+1)

C.(m=6, m+1, n=6, m+n)

D.(m=6, m+1, n=m, n+1)

33.假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是()。

A.7 B.8 C.6 D.2

34.已知s是字符型变量,下面不正确的赋值语句是()。

A.s=’\012’; B.s= ’u+v’;

C.s=’1’+’2’; D.s=1+2;

35.已知s是字符型变量,下面正确的赋值语句是()。

A.s=’abc’; B.s=’\08’;

C.s=’\xde’; D.s=”\”;

36.若有以下定义,则正确的赋值语句是()。

int x,y;

float z;

A.x=1,y=2, B.x=y=100

C.x++; D.x=int (z);

37.设x、y均为float型变量,则不正确的赋值语句是()。

A.++x ; B.x*=y-2;

C.y=(x%3)/10; D.x=y=0;

38.下列语句中符合C语言的赋值语句是()。

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;

39.putchar函数可以向终端输出一个()。

A.整型变量表达式值。B.字符串

C.实型变量值。D.字符或字符型变量值。

40.以下程序段的输出结果是( )。

int a=12345; printf(”%2d\n”, a);

A.12 B.34 C.12345 D.提示出错、无结果

41.若x和y均定义为int 型,z定义为double型,以下不合法的scanf()函数调用语句为()。

A.scanf(”%d%lx,%le”,&x,&y,&z);

B.scanf (”%2d*%d%lf ”, &x, &y, &z);

C.scanf(”%x%*d%o”, &x,&y);

D。scanf(”%x%o%6.2f”, &x,&y,&z);

42.有如下程序段:

int x1,x2;

char y1,y2;

scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);

若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:└┘代表空格)

A.10A└┘20B B.10└┘A20B

C.10 └┘A└┘20└┘ B D.10A20└┘B

43.若变量已正确说明为float类型,要通过语句scanf(”%f %f%f”, &a, &b, &c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式为()。

A.10<回车> B.10.0,22.0,33.0<回车> 22<回车>

33

C.10.0<回车> D.10 22<回车>

22.0 33.0<回车> 33<回车>

44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。

(注:└┘代表空格)

int x1,x2;

char y1,y2;

scanf(”%d%d”,&x1,&x2);

scanf(”%c%c”, &y1,&y2);

A.1020AB B.10└┘20└┘ABC

C.10└┘20 D.10└┘20AB

AB

45.已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是()。

A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

46.有如下程序段,对应正确的数据输入是()。

float x,y;

scanf(”%f%f”, &x,&y);

printf(”a=%f,b=%f”, x,y);

A.2.04<回车> B.2.04,5.67<回车>

5.67<回车>

C.A=2.04,B=5.67<回车> D.2.055.67<回车>

47.有如下程序段,从键盘输入数据的正确形式应是()。(注:└┘代表空格)float x,y,z;

scanf(―x=%d,y=%d,z=%d‖,&a,&y,&z);

A.123 B.x=1,y=2,z=3

C.1,2,3 D.x=1└┘ y=2└┘ z=3

48.以下说法正确的是()。

A.输入项可以为一个实型常量,如scanf(”%f”,3.5);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f);

D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);

49.根据定义和数据的输入方式,输入语句的正确形式为:()。(注:└┘代表空格)已有定义:float x,y;

数据的输入方式:1.23<回车>

4.5<回车>

A.scan(”%f,%f”,&x,&y); B.scanf(”%f%f”,&x,&y);

C.scanf(”%3.2f└┘%2.1f”,&x,&y); D.scanf(”%3.2f%2.1f”,&x,&y);

50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。

#include ”stdio.h”

main()

{char s1,s2,s3;

输入语句;

printf(”%c%c%c”,s1,s2,s3);

}

输入形式:A└┘B└┘C<回车> (注:└┘代表空格)

输出形式:A└┘B

A.scanf(”%c%c%c”,&s1,&s2,&s3);

B.scanf(”%c└┘%└┘c%c”,&s1, &s2,&s3);

C.scanf(”%c,%c,%c”,&s1,&s2,&s3);

D.scanf(”%c%c”, &s1, &s2,&s3);

51.以下程序的执行结果是:()。

#include ”stdio.h”

main()

{ int x=2,y=3;

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

}

A. x=%2,y=%3

B. x=%%d,y=%%d

C. x=2,y=3

D. x=%d,y=%d

52.以下程序的输出结果是()。(注:└┘代表空格)

#include ”stdio.h”

main()

{ printf(”\nstring1=%15s*”,”programming”);

printf(”\nstring2=%-5s*‖,”boy”);

printf(”string3=%2s*‖,”girl”);

}

A.string1=programming└┘└┘└┘└┘*B.string1=└┘└┘└┘└┘programming* string2=boy* string2=boy└┘└┘*string3=gi*

string3=gi*

C.string1=programming└┘└┘└┘└┘* D.string1=└┘└┘└┘└┘programming* string2=└┘└┘boy*string3=girl* string2=boy└┘└┘*string3=girl*

53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()。

#include ”stdio.h”

main()

{ int a;

float b;

输入语句

输出语句

}

输入形式:1└┘2.3<回车> (注:└┘代表空格)

输出形式:a+b=3.300

A.scanf(”%d%f”,&a,&b); B.scanf(”%d%3.1f”,&a,&b);

printf(”\na+b=%5.3f”,a+b); printf(”\na+b=%f”,a+b);

C.scanf(”%d,%f”,&a,&b); D.scanf(”%d%f”,&a,&b);

printf(”\na+b=%5.3f”,a+b) printf(”\na+b=%f”,a+b);

54.阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为()。

#include ”stdio.h”

main()

{ int a,b;

scanf(”%d%d”, &a,&b);

printf(”a+b=%d\n”,a+b);

}

A.a+b=46 B.有语法错误

C.a+b=12 D.不确定值

55.若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:└┘代表空格)

1└┘2<回车>

U└┘V└┘W<回车>

则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是()。

A.scanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar();

B.scanf(”%d%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar();

C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);

D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);

1.2 填空题

1.C语言的符号集包括________、________、________。

2.结构化设计中的三种基本结构是________、_______、________。

3.C语言源程序文件的后缀是________,经过编译后生成文件的后缀是________,经过链接后生成文件的后缀是________。

4.C语言的关键字都用________{大写或小写}。

5.一个函数由两部分组成,它们是_______、_______。

6.函数体一般包括_______、_______。

7.C语言是通过_______来进行输入和输出的。

8.以下程序的执行结果________。

#include ”stdio.h”

main()

{ short i=-1,j=1;

printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i);

printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\n”,j,j,j,j);

}

9.以下程序的执行结果是________。

#include ”stdio.h”

main()

{ char s=’b’;

printf(”dec:%d,oct:%o,hex:%x,ASCII:%c\n”, s,s,s,s);

}

10.以下程序的执行结果是________。(注:└┘代表空格)

#include ”stdio.h”

main()

{ float pi=3.1415927;

printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi);

printf(”\n%e,%.4e,%4.3e,%10.3e”,pi,pi,pi,pi);

}

11.以下程序的执行结果是:________。

#include ”stdio.h”

main()

{ char c=’c’+5;

printf(”c=%c\n”,c);

}

12.以下程序输入1└┘2└┘3后的执行结果是________。(注:└┘代表空格)

#include ”stdio.h”

main()

{ int i,j;

char k;

scanf(”%d%c%d”,&i,&k,&j);

printf(”i=%d,k=%c,j=%d\n”,i,k,j);

}

13.有以下程序,若输入9876543210后的执行结果是________;若输入为:98└┘76└┘543210后的执行结果是________;若输入为:987654└┘3210后的执行结果为:________。(注:└┘代表空格)

#include ”stdio.h”

main()

{ int x1,x2;

char y1,y2;

scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2);

printf(”x1=%d,x2=%d,y1=%c,y2=%c\n”,x,y);

}

14.若x和y均为int型变量,则以下语句的功能是________。

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

15.有一输入函数scanf(”%d”,k);则不能使float类型变量k得到正确数值的原因是:________。16.有如下程序段,输入数据:12345ffl678后,u的值是【1】,v的值是【2】。

int u;

float v;

scanf(“%3d%f”,&u,&v);

1.3 答案及部分解析

一.选择题答案

1.B 2.B 3.A 4.B 5.B 6.D 7.B 8.D 9.B 10.C 11.A 12.C 13.C 14.B 15.C 16.A 17.A 18.C 19.C 20.A 21.C 22.C 23.A 24.B 25.A 26.D 27.A 28.A 29.D 30.B 31.C 32.C 33.B 34.B 35.C 36.C 37.C 38.D 39.D 40.C 41.D 42.A 43.B 44.D 45.D 46.A 47.B 48.D 49.B 50.A 51.D 52.D 53.A 54.D 55.D

14.解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。而且不能与C语言规定的关键字同名。关键字如:auto, break, case,

char, const, continue, default, do, double, else, entry, extern, for, float, goto, if, int, int,

long, register, return, short, signed, sizeof, static, struct, unsigned, while, switch,

typedef, void, volatile, unior。这些关键字先不必硬背下来,随着后续的学习,你将

发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。15.解析:用指数形式表示一个实型常数时,E或e之前必须有数字,且E后面指数必须为整数。

16.解析:’\101’为转义字符,相对应一个ASCII码字符。(101)8=(65)10=A.

17.解析:转义字符的特征是以“\”开头,其后跟一些字符,如\n, \t, \’, \\, \}, \‖, \b, \f等代表一些特殊的含义,而\后如跟数字,可以为八进制或者十六进制,将其转换为对应

的ASCII码值,就可以得出对应的字符。“\”后跟八进制的写法:\0nn, 或者\nn, 表

示“\0”或者“\”后只能跟1或3位0——7之间的数字;“\”后跟十六进制的写

法:\xnn,或者\nn, 表示“\x”或者“\”后只能跟1或2位0——9及a——f(A—

—F)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“\”;

选项D的错误在于超长(多了一位)。

21.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18); C的错误在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括

号,即为:y=(float) m

31.解析:逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自右的。第三个表达式y++,其隐含有两步操作:先取y的原值,再执行y=y+1运

算;而本题中,虽然没有将y赋给某个变量(取其原值),但还是一定会执行加运

算的。因而,经过第三个表达式,y已经自加为6,故x+y的值为8,相对应得表

达式最终结果为8。若本题改为:(x=2, y=5, z=y++, x+z),则其结果应为7。二.填空题答案

1.答案:英文字母、数字、一些有特定含义的标点符号

2.答案:顺序结构、选择结构、循环结构

3.答案:C,OBJ,EXE

4.答案:小写

5.答案:函数说明部分和函数体

6.答案:变量定义部分和执行部分

7.答案:输入和输出函数

8.答案:dec:-1,oct:177777,hex:ffff,unsigned:65535

dec:1,oct:1,hex:1,unsigned:1

9.答案:dec:98,oct:142,hex:62,ASCII:b

10.答案:3.141593,3.1416,3.142,└┘└┘└┘└┘└┘3.142

3.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00

(注:由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果

为:3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即:小数点后取5位。) 11.答案:c=h

12.答案:i=1,k=└┘,j=2

13.答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1

第二种情况的执行结果:x1=98,x2=76,y1=└┘,y2=3

第三种情况的执行结果:x1=98,x2=765,y1=4,y2=2

14.答案:交换x和y的值

15.答案:(1)格式符应为:%f;(2)变量前边未加取地址符&, 即应为scanf(”%f”,&k); 16.答案:【1】123 【2】45.000000

第二章选择结构

2.1 选择题

1.已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。

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

2.设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为()。

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

3.设x、y和z都是int类型变量,且x=3,y=4,z=5, 则下面的表达式中,值为0的表达式为()。

A.’x’ && ’y’B.x<=y

C.x||y+z && y-z D.!((x

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

5.逻辑运算符两侧运算对象的数据类型()。

A.只能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

6.以下关于运算符优先顺序的描述中正确的是()。

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

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

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

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

7.下列运算符中优先级最高的是()。

A.< B.&& C.+ D.!=

8.选择出合法的if语句(设int x,a,b,c;)()。

A.if(a=b) c++;

B.if(a=

C.if(a<>b) c++;

D.if(a=>b) c++;

9.能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是()。

A.(x>= -58) && (x<= -40) && (x>=40) && (x<=58)

B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58)

C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58)

D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)

10.判断char型变量s是否为小写字母的正确表达式是()。

A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’)

C .(s>=’a ’) && (s<=’z ’)

D .(’a ’<=s) and (’z ’>=s) 11.若希望当x 的值为奇数时,表达式的值为“真”,x 的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是()。

A .x%2==1

B .!(x%2==0)

C .!(x%2)

D .x%2

12.已知 x=45, y=’a ’, z=0; 则表达式(x>=z && y<’z ’ || !y)的值是()。 A .0 B .语法错 C .1 D .“假” 13.指出下列程序段所表示的逻辑关系是()。

if(a

x=10; } else

x=-10;

A .??

?≠≥=<-=d

c b a d

c b a x 且且10

10

B .??

?≥=<-=b a d

c b a x 且1010

C .??

?≠<=<-=d c b a d

c b a x 且且10

10

D .??

?≠=<-=d

c d

c b a x 且10

10

14.有一函数:??

?

??>=<-=0

100

1x x x y ,以下程序段中不能根据x 值正确计算出y 值的是()。 A .if (x>0) y=1;

else if (x==0) y=0; else y= -1; B .y=0;

if (x>0) y=1;

else if (x<0) y= -1; C .y=0; if (x>=0)

if(x>0) y=1; else y= -1; D .if (x>=0) if (x>0) y=1; else y=0; else y= -1;

15.执行以下语句后,y 的值为()。

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

++x || ++y && ++z;

A.0 B.1 C.2 D.不确定值16.已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是()。

if(a>b)

c=a; a=b; b=c;

A.a=1, b=2, c=3 B.a=2, b=3, c=3

C.a=2, b=3, c=1 D.a=2, b=3, c=2

17.请阅读以下程序:该程序()。

#include ”stdio.h”

main()

{ int x=-10, y=5, z=0;

if (x=y+z) printf(”***\n” );

else printf(”$$$\n”);

}

A.有语法错不能通过编译

B.可以通过编译但不能通过连接

C.输出***

D.输出$$$

18.以下程序的运行结果是()。

#include ”stdio.h”

main()

{ int a=1;

if (a++>1) printf(”%d\n”, a);

else printf(”%d\n”, a--);

}

A.0 B.1 C.2 D.3 19.当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。

if (a

if (c

else

if (a

if (b

else x=3;

else x=4;

else x=5;

A.1 B.2 C.3 D.4 20.执行以下程序段后,变量x,y,z的值分别为()。

int a=1,b=0, x, y, z;

x=(--a==b++)?--a:++b;

y=a++;

z=b;

A.x=0,y=0,z=0 B.x= -1,y= -1,z= 1

C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1

21.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。

a=1;b=2;c=3;d=4;

w=(a

w=(w

w=(w

A.1 B.2 C.3 D.4 22.以下程序的输出结果是()。

#include ”stdio.h”

main()

{

int a=5, b=4, c=6, d;

printf(”%d\n”, d=a>b? a>c?a:c :b);

}

A.5 B.4 C.6 D.不确定23.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。

A.switch (a+b); B.switch a

{ case 1: y=a+b; break; { case c1: y=a-b; break;

case 0: y=a-b; case c2: x=a*d; break;

break; default: x=a+b;

} }

C.switch (a*a+b*b) D.switch(a-b)

{ case 3: { default: y=a*b; break;

case 1: y=a+b; break; case 3: x=a+b; break;

case 3: y=b-a; break; case 10: case 11: y=a-b; break;

} }

24.执行下列程序,输入为3的数出结果是()。

#include ”stdio.h”

main()

{

int k;

scanf(”%d”, &k);

switch(k)

{ case 1: printf(”%d\n”, k++);

case 2: printf(”%d\n”, k++);

case 3: printf(”%d\n”, k++);

case 4: printf(”%d\n”, k++);

break;

default: printf(”Full!\n”);

}

}

A.3 B.4 C.3 D.4

5 4 25.假定等级和分数有以下对应关系:

等级:A 分数:85——100

等级:B 分数:60——84

等级:C 分数:60以下

对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。

A.switch (grade)

{ case ’A’:printf(”85——100\n”);

case ’B’:printf(”60——84\n”);

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

B.switch (grade)

{ case ’A’:printf(”85——100\n”);

break;

case ’B’:printf(”60——84\n”);

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

C.switch (grade)

{ case ’A’:printf(”85——100\n”);

break;

case ’B’:printf(”60——84\n”);

break;

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

D.switch (grade)

{ case ’C’:printf(”<60\n”);

break;

case ’B’:printf(”60——84\n”);

break;

default:printf(”grade is error!\n”);

break;

case ’A’:printf(”85——100\n”);

}

26.有如下程序,写出该执行结果()。

#include ”stdio.h”

main()

{

float x=2.0, y;

if (x<0.0) y=0.0;

else if (x<10.0) y=1.0/x;

else y=1.0;

printf(”%f\n”,y);

}

A.0.000000 B.0.250000 C.0.500000 D.1.000000 27.以下程序的运行结果是()。

#include ”stdio.h”

main()

{

int a=2,b= -1,c=2;

if (a

if (b<0)

c=0;

else c++;

printf(”%d\n”,c);

}

A.0 B.1 C.2 D.3 28.运行以下程序后,如从键盘上输入china#,则输出为()。

#include ”stdio.h”

main()

{

int v1=0,v2=0;

char ch;

while ( (ch=getchar()) !=’# ’)

switch (ch)

{ case ’a’:

case ’h’:

default: v1++;

case ’o’: v2++;

}

printf(”%d,%d\n”, v1,v2);

}

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

29.有以下程序,若输入为字符s,则程序运行结果为()。

#include ”stdio.h”

main()

{

char ch;

ch=getchar();

switch (ch)

{ case ’a’: printf(”a=%c\n”,ch);

default: printf(”end!\n”);

case ’b’: printf(”b=%c\n”,ch);

case ’c’: printf(”c=%c\n”,ch);

}

}

A.end! B.end! C.有语法错误D.a=s b=s end!

c=s

30.有以下程序,程序运行后的输出结果是()。

#include ”stdio.h”

main()

{

int a=15, b=21, m=0;

switch (a%3)

{ case 0: m++; break;

case 1: m++;

switch (b%2)

{ default: m++;

case 0: m++; break;

}

}

printf(”%d\n”,m);

}

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

2.2 填空题

1.若从键盘输入58,则输出结果是________。

#include ”stdio.h”

main()

{

int a;

scanf(”%d”, &a);

if (a>50) printf(”%d”, a);

if (a>40) printf(”%d”,a);

if (a>30) printf(”%d”,a);

}

2.设int x=9,y=8;表达式x==y+1的结果是________。

3.定义int x,y;执行y=(x=1,++x,x+2);后, y的值是________。

4.定义int x=10,y,z; 执行y=z=x; x=y==z;后,x的结果是________。5.设int a=1,b=2,c,d,e; 执行

c=(-a++)+(++b);

d=(b--)+(++a)-a;

e=(a/(++b))-(a/(--a));

请问a,b,c,d,e的结果是:________。

6.设int a=2,b=3,c,d,e,f; 执行

c=(a++>= --b);

d=(a==++b);

e=(a--!=b);

f=(++a>b--);

请问a,b,c,d,e,f的结果是:________。

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

#include ”stdio.h”

main()

{

int a,b,c,s,w,t;

s=w=t=0;

a= -1; b=3; c=3;

if (c>0) s=a+b;

if (a<=0)

{ if (b>0)

if (c<=0) w=a-b;

}

else if (c>0) w=a-b;

else t=c;

printf(”%d %d %d”, s,w,t);

}

8.以下程序的运行结果是________。

#include ”stdio.h”

main()

{

int a,b,c,d,e;

a=c=1;

b=20;

d=100;

if (!a) d=d++;

else if (!b)

if (d) d= --d;

else d= d--;

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

}

9.以下程序的运行结果是________。

#include ”stdio.h”

main()

{

int a, b= 250, c;

if ((c=b)<0) a=4;

else if (b=0) a=5;

else a=6;

printf(”\t%d\t%d\n”,a,c);

if (c=(b==0))

a=5;

printf(”\t%d\t%d\n”,a,c);

if (a=c=b) a=4;

printf(”\t%d\t%d\n”,a,c);

}

10y值。请在【】内填空。

#include ”

main()

{

int x,y;

scanf(”%d”, &x);

if (【1】) y=x*(x+2);

else if (【2】) y=1/x;

else if (x<=-1) y=x-1;

else 【3】;

if (y!= -1) printf(”%d”,y);

else printf(”error”);

}

11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。请在【】内填入正确内容。

#include ”stdio.h”

#include ”math.h”

main()

{

float a,b,c,t,disc,w,term1,term2;

printf(”enter a,b,c:”);

scanf(%f%f%f”,&a,&b,&c);

if (【1】)

if (【2】) printf(”no answer due to input error\n”);

else printf(”the single root is %f\n”, - c/b);

else

{ disc=b*b-4*a*c;

w=2*a;

term1= -b/w;

t=abs(disc);

term2=sqrt(t)/w;

if (【3】)

printf(”complex root\n real part=%f imag part =%f\n”, term1,term2);

else

printf(”real roots\n root1=%f root2=%f\n”, term1+term2,term1-term2);

}

}

12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请在【】内填入正确内容。

#include ”math.h”

#include ”stdio.h”

main()

{

float a,b,c,s,area;

printf(”please input three edges of a triangle:”);

scanf(”%f%f%f”,&a,&b,&c);

if (【1】)

{ s=(a+b+c)/2;

area=sqrt(s*(s-A*(s-B*(s-c));

printf(”\nthe area of the triangle is: %f”,area);

if ((a==b)&&(b==c))

printf(”等边三角形”);

else if (【2】)

printf(”等腰三角形”):

else if (【3】)

printf(”直角三角形”):

else printf(”一般三角形”):

}

else printf(”不能组成三角形”);

}

13.以下程序的功能是判断输入的年份是否是闰年。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

int year, flag;

printf(”please input the year to jude whether it is a leap year:”);

scanf(”%d”,&year);

if (year%400==0) flag=1;

else if (【1】) flag=1;

else 【2】;

if (flag) printf(”%d is a leap year\n”,year);

else printf(”%d is not a leap year!\n”,year);

}

14.以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

char ch;

printf(”please input a letter:”);

scanf(”%c”,&ch);

if (【1】) ch=ch+32;

else if (ch>=’a’ && ch<=’z’)

【2】;

printf(” the converted letter is: %c\n”,ch);

}

15.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

int a,b,c,min;

printf(”please input three numbers:”);

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

if (【1】)

min=b;

else

min=a;

if (min>c)

【2】;

printf(”min=%d\n”,min);

}

16.以下程序实现这样的功能:商店卖西瓜,10斤以上的每斤0.15元,8斤以上的每斤0.3元,6斤以上的每斤0.4元,4斤以上的每斤0.6元,4斤以下的每斤0.8元,从键盘输入西瓜的重量和顾客所付钱数,则输出应付款和应找钱数。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

float weight, money, rate;

printf(”the paid money of the client is:”);

scanf(”%f”,&money);

printf(”the weight of the watermelon is:”);

scanf(”%f”,&weight);

if (【1】)

rate=0.15;

else if (weight>8)

rate=0.3;

else if (weight>6)

【2】;

else if (weight>4)

rate=0.6;

【3】

rate=0.8;

printf(”the account payable of the watermelon is %f\n”, weight*rate);

printf(”the change for client is %f\n”,money-weight*rate);

}

17.以下程序段的运行结果是________。

#include ”stdio.h”

main()

{

char ch1=’a’,ch2=’A’;

switch (ch1)

{ case ’a’:

switch (ch2)

{case ’A’: printf(”good!\n”); break;

case ’B’: printf(”bad!\n”); break;

}

case ’b’: printf(”joke\n”);

}

}

18y值。请在【】内填入正确内容。

#include ”

main()

{

int x, rate;

float y;

printf(”please input the value of x:”);

scanf(”%d”,&x);

if (【1】) rate= -1;

else rate=【2】;

switch(rate)

{ case –1: y=0; break;

case 0: y=x; break;

case 1: y=10; break;

case 2:

case 3: y=-0.5*x+20; break;

default: y= -2;

}

if (【3】) printf(”y=%f\n”,y);

else printf(”the value of x is invalid!\n”);

}

19.以下程序实现的功能是:从键盘输入某年某月,输出该年份该月的天数。请在【】内填入正确内容。

#include ”stdio.h”

main()

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言基础知识_测试题

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

C语言基础编程题

5-1求幂之和(15分) 本题要求编写程序,计算sum=2^1+2^2+2^3+\cdots+2^n sum=21+22+23++2n。可以调用pow函数求幂。 输入格式: 输入在一行中给出正整数n n(\le≤10)。 输出格式: 按照格式“result=计算结果”输出。 输入样例: 输出样例: #include<> #include<> intmain() { inti,n,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+pow(2,i); } printf("result=%d\n",sum); return0; } 5-2近似求PI(15分) 本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。

\frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times5}+\frac{3!}{3\times5\times7}+\ cdots+\frac{i!}{3\times5\times\cdots\times(2\timesi+1)}+\cdots2π=1+31!+3×52!+3×5×73!++3×5××(2×i+1)i!+ 输入格式: 输入在一行中给出精度eps,可以使用以下语句来读输入: 输出格式: 在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位): 输入样例: 输出样例: #include<> #include<> intmain() { doublea=1,b=3,i=1,j=3; doubleeps,m=1,sum=0; scanf("%le",&eps); while(m>eps) { m=a/b; sum=sum+m; i=i+1; j=j+2; a=a*i; b=b*j; } printf("PI=%.5lf\n",2+2*sum);

C语言基础练习100题(含答案)

C语言基础练习100题(含答案) 欧阳学文 雷柳青编排 1、下面程序的输出是________ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是________. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是__________. A) '\t' B) "A" C) 65 D) A 4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码 5、设int a=12,则执行完语句a+=a=a*a 后,a的值是________ A) 552 B) 264 C) 144 D) 264 6、执行下面程序中的输出语句后,输出结果是______. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 7、下面程序的输出是__________. #include void main() {int x=023; printf("%d\n",x); } A) 17 B) 18 C) 23 D) 24 8、下面程序的输出是___________. #include void main() {char ch1,ch2; ch1='A'+'5''3'; ch2='A'+'6''3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 9、以下程序的输出结果是________. #include void main() { int x=10,y=10; printf("%d %d\n",x,y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y)); 上面程序片段的输出结果是_______.

年C语言程序设计基础期末考试试卷‘B’及答案

年C语言程序设计基础期 末考试试卷‘B’及答案 The following text is amended on 12 November 2020.

一、单项选择题 1. 在C语言中,下面字符串能用作变量名的是( )。 A、a+b B、auto C、2-and D、a2 2. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A、 B. C. D. 3 3. 下列关于C语言中字符常量与字符串常量的叙述中,错 误的是( )。 A、字符常量是用单撇号括起来的一个字符 B、空格字符也可用作字符常量 C、字符串常量是用单撇号括起来的一个字符序列 D、字符串常量是用双撇号括起来的一个字符序列 4. 若有以下变量说明和数据的输入方式,则正确的输入语 句为( )。

变量说明:float x1,x2; 数据的输入方式:<回车> <回车> A、scanf(“%f,%f”,&x1,&x2); B、scanf(“%f%f”,&x1,&x2); C、scanf(“%,%”,&x1,&x2); D、scanf(“%%”,&x1,&x2); 6. 在一个源文件中定义的全局变量的作用域为()。 A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围

7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 8.若j为整型变量,则下面while循环( )。 j=10; while(j!=0) j=j-1; A、执行0次 B、执行1次 C、执行10次 D、执行无限次 9. 在while(x)语句中的x与下面条件表达式等价的 是:( )。 A、x!=0 B、 x==1 C、x!=1 D、x==0 10. 以下对C语言函数的描述中,正确的是( )。 A、调用函数时,参数可以是表达式

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

第一章 C语言基础知识ji

第一章C语言基础知识 一、选择题 1.C语言规定,必须用 C 作为主函数名。(0级) A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个B,一个C程序总是从B开始执行。(0级) A)过程B) 主函数C)函数D)include 3.A是C程序的基本构成单位。(0级) A)函数B) 函数和过程C) 超文本过程D) 子程序4.下列说法正确的是C。(0级) A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 B)一个函数的函数体必须要有执行部分,可以没有变量定义 C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 D)以上都不对 5.下列说法正确的是D。(0级) A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 6.下列说法正确的是C。(0级) A)在执行C程序时不是从mian函数开始的 B)C程序书写格式严格限制,一行内必须写一个语句 C)C程序书写格式自由,一个语句可以分写在多行上 D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号 7.在C语言中,每个语句和数据定义是用C结束。(0级) A)句号B)逗号C)分号D)括号 8.下列字符串是标识符的是A。(0级) A)_HJ B)9_student C)long D)LINE 1 (因为有空格) 9.以下说法正确的是C。(0级) A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 10.B不是C语言提供的合法关键字。(0级) A)switch B)print C)case D)default 11.C语言提供的合法关键字是A。(0级) A)break B)print C)funiton D)end 12.C语言提供的合法关键字是A。(0级) A)continue B)procedure C)begin D)append 13. C语言规定: 在一个源程序中, main函数的位置C。(02~03第一学期试题)(?) A) 必须在最开始B) 必须在系统调用的库函数的后面

C语言习题集(基础篇)

《C语言程序设计》习题篇 第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

C语言基本练习题

1. 某城市出租车收费标准如下:起步里程是3 公里,起步费是10 元;超出起步里程后每公里 1.5 元。编写程序,输入行驶里程(公里) ,计算并输出乘客应支付的车费(元)。 #include int main() { double n; scanf("%lf",&n); if(n<=3) { printf("%d\n",10); } else { printf("%.2f\n",1.0*(10+(n-3)*1.5)); } return 0; } 2. 某城市月用水量收费标准如下:每月使用吨数小于等于15 吨的,每吨收费2.5 元;每月使用吨数超过15 吨的,采用分段计费:超过部分每吨 3 元。编写程序,输入使用吨数,计算并输出用户水费(元) 。 #include int main() { double n,x; scanf("%lf",&n); if(n<=15) {x=n*2.5; } else { x=15*2.5+(n-15)*3.0; } printf("%.2f\n",x); return 0; } 3. 求解简单表达式。输入一个形式如:"操作数运算符操作数"的四则运算表达式,输出运算结果,要求使用switch 语句( if 语句)编写。#include #include int main() { double s1,s2; char op; scanf("%lf %c %lf",&s1,&op,&s2); switch(op) {case '+':printf("%.2f\n",s1+s2);break; case '-':printf("%.2f\n",s1-s2);break; case '*':printf("%.2f\n",s1*s2);break; case '/': if(fabs(s2)

C语言编程基础考试试题

C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main()

{ char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言基础练习题含复习资料

目录 第1-3章C语言基础知识习题 (2) 1 选择题 (2) 2 填空题 (7) 3 答案及部分解析 (9) 第4章选择结构习题 (11) 1 选择题 (11) 2 填空题 (17) 3 答案及部分解析 (23) 第5章循环结构习题 (26) 1 选择题 (26) 2 填空题: (32) 3 答案及部分解题分析 (39) 第6章数组习题 (41) 1. 单项选择题 (41) 2. 填空题 (44) 3. 判断题 (45) 4. 程序填空题 (45) 5. 阅读程序,分析程序的功能。 (49) 第7章函数习题 (55) 1. 单项选择题 (55) 2. 填空题 (56) 3. 判断题 (57) 4. 程序填空题 (58) 5. 写出下列程序运行结果 (59) 第8章指针习题 (67) 1 选择题 (67) 2 填空题 (69)

第1-3章C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

第1章 C语言基本知识

第一章C语言基本知识 一、C语言的产生和发展 1、C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSI C->ISO C 2、语言既具有高级语言特性,又具有低级语言特性-中级语言。 二、C语言的特点 1、语言简明、紧凑、使用方便、灵活。 2、运算符丰富。 3、数据结构丰富,具有现代化语言的各种数据结构。 4、具有结构化的控制语句。 5、语法限制不太严格,程序设计自由度大。 6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高。 8、用C语言写的程序可移植性好。 三、C程序的基本规则 1、C程序由函数构成。(亦称为函数语言。) 2、C程序中每条语句都用一个分号结尾,分号是C程序语句的必要组成部分,语句最后的分号不能省略。 3、每个C程序都有一个主函数(main()),且只有一个主函数。并且程序是从主函数开始执行的。 4、调用C语言的标准函数通常要在程序开头使用包含命令include,C程序中的命令不用分号结尾。 5、C程序中的变量必须先定义,后使用。 6、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写,同一字母的大小写被作为两个不同的字符。 7、C程序中可以用“/*……*/”的形式加注释。 8、C程序书写格式自由,一行内可以写几条语句,一条语句可以写在多行。 9.一个函数包含两个部分: (1)函数的说明部分。包括函数名,函数类型,函数属性,函数参数名等。 如:int max(x,y) int x,y; 函数名后必须跟一对圆括弧,函数参数可以没有,如:main()。 (2)函数体。

C语言基本练习题

1. 某城市出租车收费标准如下:起步里程是3公里,起步费是10元;超出起步里程后每公里1.5元。编写程序,输入行驶里程(公里),计算并输出乘客应支付的车费(元)。 #include int main() { double n; scanf("%lf",&n); if(n<=3) { printf("%d\n",10); } else { printf("%.2f\n",1.0*(10+(n-3)*1.5)); } return 0; } 页脚内容1

2. 某城市月用水量收费标准如下:每月使用吨数小于等于15吨的,每吨收费2.5元;每月使用吨数超过15吨的,采用分段计费:超过部分每吨3元。编写程序,输入使用吨数,计算并输出用户水费(元)。#include int main() { double n,x; scanf("%lf",&n); if(n<=15) {x=n*2.5; } else { x=15*2.5+(n-15)*3.0; } printf("%.2f\n",x); return 0; } 页脚内容2

3. 求解简单表达式。输入一个形式如:"操作数运算符操作数"的四则运算表达式,输出运算结果,要求使用switch 语句(if语句)编写。 #include #include int main() { double s1,s2; char op; scanf("%lf %c %lf",&s1,&op,&s2); switch(op) {case '+':printf("%.2f\n",s1+s2);break; case '-':printf("%.2f\n",s1-s2);break; case '*':printf("%.2f\n",s1*s2);break; case '/': if(fabs(s2)

C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识 一、单项选择题 1、以下( )是面向过程的程序设计语言。 A)机器语言B)汇编语言C)高级语言D)第四代语言 2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。 A)设计数据结构和算法B)建立数学模型 C)编写程序D)调试和运行程序 3、以下常用算法中适合计算等差级数的算法是( )。 A)枚举法B)递推法C)分治法D)排序法 4、以下不属于算法基本特征的是( )。 A)有穷性B)有效性C)可靠性D)有一个或多各输出 5、以下描述中不正确的是( )。 A)程序就是软件,但软件不紧紧是程序。 B)程序是指令的集合,计算机语言是编写程序的工具。 C)计算机语言都是形式化的语言,它有一个语法规则和定义。 D)计算机语言只能编写程序而不能表示算法。 6、下面描述中,正确的是( ) A)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题

c语言期末测试题附答案)

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第 一、 单项选择题(本大题共 15 小题,每题只有一个正确答案,答对 一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k ); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】

国家二级C语言机试(C语言基础知识)模拟试卷8

国家二级C语言机试(C语言基础知识)模拟试卷8 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 (分数:2.00) A.一条C语句可能会被转换成多条机器指令 B.一条C语句对应转换成一条机器指令√ C.一条C语句可能会被转换成零条机器指令 D.某种类型和格式的C语句被转换成机器指令的条数是固定的 解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。 2.以下选项中不属于C语言程序运算符的是 (分数:2.00) A.sizeof B.() C.<> √ D.&& 解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。 3.若变量已正确定义并赋值,以下不能构成C语句的选项是 (分数:2.00) A.A=a+b: B.B++; C.a=a+b √ D.A?a:b; 解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。 4.以下叙述中正确的是 (分数:2.00) A.程序必须包含所有三种基本结构才能成为一种算法 B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 C.只有简单算法才能在有限的操作步骤之后结束 D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√ 解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 5.下列选项中,不能用作标识符的是 (分数:2.00) A._1234 B._1_2 C.int_2_ D.2_int_ √ 解析:解析:C语言中标以符必须以字母或者下划线开始,选项D)中是以数字开始的不能作为标识符。6.以下选项中作为C语言合法常量的是 (分数:2.00) A.-80.√ B.-080

C语言基础题及参考答案

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是: A 。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从 B 开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以 D 。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是: C 。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是 D 。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是:。 ? A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是: C 。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是: B 。 A. ‘\2’ B. "" C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. W += -2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以 D 形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=2.5; y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是: A 。

(完整版)C语言基础知识综合练习题

一、C语言基本知识和基本语句 (一)选择题 1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是()。 A)‘a’&&’b’ B) a<=b C) a || b+c&&b-c D) ! ((a= ‘A’ && ch <=‘Z’) ? ( ch + 32):ch,则表达式ch的值是()字符。 A) A B) a C) Z D) z 3.若x和y都是int 型变量,x=100,y=200,且有程序段:printf (“%d”,(x,y));则输出结果是()。 A) 200 B)100 C) 100,200 D)输出格式不够,输出不确定的值4.C语言中最简单的数据类型包括()。 A)整型、实型、逻辑型 B) 整型、单精度型、双精度、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型5.C语言中,运算对象必须是整型的运算符是()。 A)% B) / C) % 和 / D) ** 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.以下说法中正确的是()。 A)C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分 8.设int x=10,y=3,z;则语句printf (“%d\n”,z=(x%y,x/y));的输出结果是()。 A) 1 B) 0 C) 4 D) 3 9.C语言表达式10 != 9 的值是()。 A)true B) 非零值 C) 0 D) 1 10.合法的C语言字符常量是()。 A)’\t’B) “A” C) 65 D) A 11.若int类型数据占两个字节,则下列语句的输出为()。 int k = -1 ; printf (“%d,%u\n ”,k,k); A)- 1,- 1 B) – 1,32767 C) –1,32768 D) –1,65535 12.组成C语言程序的是()。 A)子程序 B) 过程 C) 函数 D) 主程序和子程序

C语言基础测试题

C语言基础测试题 一选择题(每题2分) 1. C语言程序的基本单位是( A )。 A. 函数 B. 过程 C. 语句 D. 子程序 2. 对于whil e语句,错误的说法是( C )。 A.用条件控制循环体的执行次数 B.循环体至少要执行一次 C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句 3. 定义语句int a=3;则执行语句a+=a-=a*a后,变量a的值是(C)。 A.3 B.0 C.9 D.-12 4. 关于局部变量和全局变量的叙述中,错误的是(A)。 A.全局变量的重复赋值不会影响局部变量的使用。 B.主函数中定义的变量在整个程序中都是有效的 C.形式参数也是局部变量。 D.不论是局部变量还是全局变量,都以最近的一次赋值为准。 5. 已知:int a=13;那么:printf("%02d",a)结果是(A)。 A.13 B.013 C.01 D.03 6. 在main函数中调用scanf给变量a赋值的方法是错误的,原因是()。 int *p,a; p=&a; printf("input a:"); scanf("%d",*p); A. *p表示的是指针变量p的地址 B. *p表示的是变量a 的值,而不是变量a的地址 C. *p表示的是指针变量p的值 D. *p只能用来说明p是一个指针变量 7.若有以下定义,则对a数组元素地址的正确引用是()。 A.a+5 B.*a+1 C.&a+1 D.&a[0] 8. 若int k=4,a=3,b=2,c=1;则kb); A. 1,3 B. 1,4 C. 2,3 D. 2,4 二.填空题。(每空3分) 1.写一个宏MIN,这个宏输入两个参数并返回较小的一个_________。2.main函数中:for(int i=0; i<3; i++){printf("%d",i);}输出结果是_________。3.设int a=9,b=20;则printf("%d,%d",a--,--b);的输出结果是_________。

相关文档
相关文档 最新文档