当前位置:文档之家› C语言基础练习题(含答案)Word版

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

C语言基础练习题(含答案)Word版
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( )函数开始执行

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

13. C 编译程序是( )。 c

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

B .一组机器语言指令

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

D .由制造厂家提供的一套应用软件

14.以下选项中,合法的用户标识符是( )。b

A .long

B ._2abc

C .3dmax

D .A.dat

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

A .5E2.0

B .E-3

C .2E0

D .1.3E

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

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

A .字符A

B .字符a

C .字符c

D .非法的常量

17.以下选项中, 合法转义字符的选项是( )。a

A .’\\’

B .’\018’

C .’xab ’

D .’\abc ’

18.以下选项中,正确的字符常量是( )。b

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);

p rintf(”\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=getch ar();

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;

s canf(”%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)变量前边未加取地址符&, 即应为scan f(”%f”,&k); 16.答案:【1】123 【2】45.000000

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

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语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

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语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

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.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设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<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言上机练习题

C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。 #include<> intmain() { intn; intfactorial(intn); scanf("%d",&n); printf("%d\n",factorial(n)); return0; } intfactorial(intn) { inti,fact=1; for(i=1;i<=n;i++) fact=fact*i; returnfact; } 若输入5↙ 2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。 #include<> intmian() { printf("WelcometoYou!\n") return0; } 3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。 #include<> main() { intx,y; scanf("%d",&x); if(x<1) {y=x;

printf("x=%d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 4.当输入19,2,21时下列程序运行的结果是()。 #include<> main() {inta,b,c,max; printf("pleasescanthreenumbera,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

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语言上机操作题

实验一上机操作初步(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的特点与基本结构。 2、了解C语言程序的编译环境。 3、掌握使用C语言编写和调试程序的流程:编辑-保存-编译-构建(组件)-执行。 4、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 5、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,第四题为选做题目。 1、编辑实验教材P2程序,掌握C语言程序在Visual C++6.0环境下的编译流程和调试过程。(实验教材P2) 2、在屏幕上实现下列图案的输出: **************************** hello,welcome to china! good bye! **************************** (实验教材P11) 3、计算两个数x和y的和。(教材P5【例1-2】) 4、求两个数的最大值。(教材P5【例1-3】) 四、实验步骤与过程: 1、#include "stdio.h" void main( ) { printf("Hello,World!"); printf("\n"); } 2、 五、实验调试记录: 1、 2、 实验二简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、掌握标识符、常量、变量的定义及使用。 3、掌握C语言的常用运算符及表达式。 三、实验内容:

说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18) 2、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 3、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21) 4、输入并运行以下程序,分析运行结果。(实验教材P27) #include “stdio.h” void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验步骤与过程: 五、实验调试记录: 实验三选择结构程序设计(一)(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握单分支if语句的使用方法。 2、掌握双分支if-else语句的使用方法。 3、掌握多分支语句的一般形式和使用方法。 三、实验内容: 说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27) 3、判断箱子是正方体还是长方体。请根据注释将程序填写完整。(实验教材P33) 4、编写程序,通过输入x的值,计算阶跃函数y的值。(教材P70【例5-4】)

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语言上机练习题_828701982

C语言上机考试练习题(1) 说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。 1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求: (1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。 (2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include #include void main() { int cmpsubstr(char *s1,char *s2); char str1[20],str2[50]; char *s1=str1,*s2=str2; gets(str1); gets(str2); printf("%d",cmpsubstr(s1,s2)); } int cmpsubstr(char *s1,char *s2) { int i,d,a=0,situation=0; d=strlen(s1); for(i=0;*(s2+i)!='\0';i++) {

if(*(s1+a)==*(s2+i)) { a++; if(a==d) { situation=1; break; } } else { a=0; } } if(situation==0)return(-1); else return(i-d+2); } 2、输入一个字符串,有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数。要求:(1)在主函数中输入字符串,并输出结果。调用子程序处理字符串。 (2)子函数的返回值为整数的个数。 #include #include void main() { int search(char *str,int *sum); char str[100]; int d,sum[20],i;

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

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语言程序设计习题大全(附答案)

C语言基础一: 1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x <<02>>B>>2 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case ).Default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值D) T 9若有以下定义 char s='\092'; 则该语句( B ) A)使s的值包含一个字符B)定义不合法,s的值不确定 C)使s的值包含4个字符D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值D)C 12逻辑运算符两侧运算对象的数据类型是( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。

相关主题
文本预览
相关文档 最新文档