文档库 最新最全的文档下载
当前位置:文档库 › C语言习题

C语言习题

C语言习题
C语言习题

C语言程序设计模拟试卷(Ⅰ)

一、单项选择题(每小题1分,共20分)

1.下面的英文单词,不是C语言保留字的是:

A.double

B.default

C.size

D.typedef

2.在Turbo C系统下,对源程序进行编译、连接且运行的按键是:

A.Alt+F9

B.F9

C.Alt+F5

D.Ctrl+F9

3.下面哪一个是合法的整型常数?

A.π

B.2.71828

C.018

D.0x2f5

4.下面不正确的C语言标识符是:

A.ABC

B.abc

C.a_bc

D.ab.c

5.设n=10,i=4;表达式n%=i+1执行后,n的值为:

A.0

B.3

C.2

D.1

6.如果a=5,b=2,c=3,d=4,则表达式a

A.2

B.3

C.4

D.5

7.下面程序段的运行结果是:

main()

{int n=1;

printf("%d,%d,%d\n",n,++n,n--);

}

A.1,1,1

B.1,2,2

C.1,2,3

D.1,2,1

8.如执行下列程序时,从键盘输入数据3和4,则程序的输出结果时:

main()

{int a,b,s;

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

s=a;

if(a

s=s*s;

printf("%d",s);

}

A.14

B.16

C.18

D.20

9.以下程序的输出结果是:

main()

{int i,j,k,a=2,b=3;

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

j=a++;k=++b;

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

}

A.i=3,j=2,k=4

B.i=1,j=2,k=4

C.i=1,j=2,k=5

D.i=3,j=2,k=5

10.在C语言中,当while语句构成的循环中的条件为时,结束循环。

A.0

B.1

C.true

D.非0

11.在下述语句中,for循环共执行了次。

main()

{int i=0,j=10,k=2,s=0;

for(; ;)

{i+=k;

if(i>j) {printf("%d\n",s);break;}

s+=i;

}

}

A.4

B.7

C.5

D.6

12.若有定义int a[10];则数组元素的下标下限和上限分别是:

A.0和1

B.1和9

C.0和9

D.1和10

13.下列程序的运行结果是:

#include

main()

{char s[10]={"abc"};

printf("c1=%c,c2=%s\n",s[2],s);

}

A.c1=c,c2=abc

B.c1=b,c2=a

C.c1=b,c2=abc

D.c1=c,c2=a

14.下列程序的输出结果是:

#include

main()

{char s[10]={'a','b','c'};s[3]='\0';

printf("%d\n",strlen(s));

}

A.值不确定

B.10

C.4

D.3

15.下列说法正确的是:

A.一个源程序文件只能由一个函数组成

B.一个C程序只能由一个源程序组成

C.一个C程序可有多个main函数

D.同一函数可以被另一函数调用多次

16.若没有定义变量的存储类别,则系统默认的存储类别是:

A.register

B.static

C.auto

D.extern

17.下列程序的运行结果是:

func(int x,int y,int *jia,int *jian)

{*jia=x+y;

*jian=x-y;

}

main()

{int i=10,j=3,x1,x2;

func(i,j,*x1,&x2);

printf("%d,%d\n",x1,x2);

}

A.0,0

B.10,3

C.13,7

D.7,13

18.下列定义中,指针数组定义正确的是:

A.int n,(*p)();

B.int n,*p[n];

C.int n,(*p)[4];

D.int n,*p[5];

19.下列程序的运行结果是:

#define SQR(x) ((x)*(x))

#define AREA(r) (3.14*SQR(r))

#include

main()

{float x=10.0;

printf("%.1f\n",AREA(x)/10);

}

A.3.14

B.31.4

C.9.9

D.6.28

20.在ASCII码文件的读/写过程中,文件的结束标志是:

A.0

B.END

C.EOF

D.feof

二、多项选择题(每小题2分,共20分)

21.与十进制数100等值的数有:

A.(1100100)2

B.(1011011)2

C.(144)8

D.(64)16

E.(5F)16

22.下面哪些基本结构和特性符合结构化程序设计的要求:

A.选择结构

B.循环结构

C.顺序结构

D.各结构之间只有一个入口、至多两个出口

E.各结构之间只有一个入口、一个出口

23.设a=1,b=3,c=0;下面表达式的值为1的有:

A.!a&&b||a&&(c+1)

B.a-b+3

C.(c>b)==c

D.(a=0)&&(b=0)

E.b>a&&a>c

24.若所用变量已正确定义,以下各程序段执行后,变量x值一定相等的有:

A.x=0;

B.i=0;x=0;

C.for(i=0;i<5;i++)

for(i=0;i<=3;i++) do{x=x+i;i=i+1;} x=i+x;

x=i+x; while(i<=3);

D.x=0;i=0;

E.x=0;i=0;

while(i<3) lop:x=i+x;

{x=i+x; i++;

i++;} if(i<=3) goto lop;

25.若有如下定义及赋值:

int x=5,*p,*p1;

p=&x;p1=p;

则可以输出变量x的值的语句是:

A.printf("%d\n",x);

B.printf("%d\n",*p)

C.printf("%d\n",p1)

D.printf("%d\n",&x);

E.printf("%d\n",*p1);

26.若有如下定义及赋值:

int i,*p,a[5];

p=a;

则可表示数组元素a[i]的地址的表示是:

A.&a[i]

B.a+i

C.p+i

D.*(p+i)

E.a[i]

27.设有二维数组int a[3][4];下列表示形式中地址相等的是:

A.&a[0][1]

B.*a

C.a[0]+1

D.*a+1

E.a[1]

28.设有定义int a[3][4],*p;及赋值p=a;假定数组a的首地址是1020,则下列能输出显示地址值1020的语句是:

A.printf("%d\n",a);

B.printf("%d\n",*a);

C.printf("%d\n",*p)

D.printf("%d\n",p);

E.printf("%d\n",&a[0]);

29.下面各项有错误的是:

A.struct person{long bh;char *name;int age;} ps1={97100,"Wang",20},*pst;

pst=ps1;printf("%d",*pst->age);

B.struct my_data{int num;struct my_data *next;};

C.struct test{char *course;char *class;}

D.struct worker{char name[9];float gz;} Li={"LiPing",532.67};

E.struct int_num{int i_num;struct int_num *next;} ione,*pi;

pi=&ione;

30.表达式~(x^x)的值可以是:

A.0

B.65535

C.-1

D.0xffff

E.1

三、填空题(每小题1分,共10分)

31.设字长为八位,十进制数-1在机内的存储形式是。

32.组成C程序的若干函数中,只能且必须有一个名为的主函数。

33.在使用数学函数时,要求在程序的开头处写上的编译预处理命令是。

34.当a=1,b=3,c=5,d=4时,执行以下程序段后x= 。

if(a

if(c

else

if(a

if(b

else x=3

else x=6;

else x=7;

35.设i,y,s均为int型变量,则执行for循环后,y的值为。

for(i=0,y=0;i<3;s=i*i,y=y+s,i++);

36.以下程序的输出结果是。

main()

{int a[2][2]={1,2,3,4};

int i,j,s;

for(s=0,i=0;i<2;i++)

for(j=0;j<2;j++)

s=s+a[0][i*2+j];

printf("s=%d\n",s);

}

37.局部变量是在函数内部定义的,它们只在有效。

38.若有定义int x,y=4,*p;则执行语句p=&y;x=(*p)++;后,x的值为。

39.在共用体上,存储空间的大小取决于存储单元成员的数据类型。

40.设有语句FILE *fp;则打开C盘根目录下一级子目录doc中的ASCII码文件file1.txt 用于读的C语句是。

四、简答题(第41,42每小题2分,第43,44每小题3分,共10分)

41.简述Turbo C2.0系统中,在主菜单Compile 下,选用命令Compile to OBJ与选用命令Make EXE file两者之间的异同。

42.简述下列条件语句中if和else是如何配对的。

if(a

①②③

if(a

④⑤⑥⑦

if(a

⑧⑨⑩⑾

43.简述字符数组初始化与字符串指针变量的初始化有什么不同。

44.简述fputc()和fputs()函数的作用。它们的使用格式如下:

fputc(ch,fp); /*fp为文件指针,ch为字符*/

fputs(str,fp); /*fp为文件指针,str为字符串首址*/

五、阅读分析题(每小题2分,共20分)

45.阅读下面程序,写出运行结果。

main()

{int a=3,b=4,c=5;

unsigned d;

printf("%d,%d,%d\n",(a,b,c),b,c);

d=-a;

printf("d=%u\n",d);

}

46.阅读下列程序,并回答问题。

#define Y 20

main()

{int x=10,z=50;

x=z-29;

switch(x)

{case 12: z+=12;break;

case Y+1: z+=Y+1;break;

case Y-7: z+=Y-7;break;

}

printf("%d\n",z);

}

写出该程序运行结果。若将"case Y-7"改为"case Y-8"会出现什么情况?请说明原因。

47.阅读下面的程序,写出程序的输出结果:

main()

{int m,n;

m=65;n=14;

while(m!=n)

{while(m>n) m-=n;

while(n>m) n-=m;}

printf("m=%d\n",m);

}

48.程序同第47题,外循环执行完一次时,m和n的值分别是多少?

49.程序同第47题,将外循环中的第二条while语句删除后,程序运行情况如何?

50.下面函数的功能是什么?

double power(double x,int n)

{double t;

if(n>0) for(t=1.0;n>0;n--) t*=x;

else t=1.0;

return(t);

}

51.在第50题的函数中,若考虑n<0的情况,函数如何修改?

52.请改用递归方法实现第50题函数的功能。

53.阅读下面程序,请说明语句p->next=head;的作用。

struct data{int number;

struct data *next;} *head=NULL;

void create()

{struct data *p;int x;

scanf("%d",&x);

while(x)

{p=(struct data *)malloc(sizeof(struct data));

p->number=x;

p->next=head;

head=p;

scanf("%d",&x);

}

}

54. 程序同第53题,请说明语句head=p;的作用。

六、程序设计题(第55题8分,第56题12分,共20分)

55.编程序求:1!+2!+3!+…+10! 并输出结果。

56.设有7×7浮点型数组x(7×7表示7行7列)。要求:

?从键盘输入49个浮点数对数组x赋值。

?计算数组x每一行的累加和以及每一列正数的平均值(假设每一列中至少有一个正数)。?将数组x各行的累加和以及各列正数的平均值依次写到当前目录下的二进制文件array.txt中。

C语言程序设计模拟试卷(Ⅰ)

参考答案

一、单项选择题(每小题1分,共20分)

1.C

2.D

3.D

4.D

5.A

6.B

7.A

8.B

9.D 10.A

11.B 12.C 13.A 14.D 15.D 16.C 17.C 18.D 19.B 20.C

二、多项选择题(每小题2分,共20分)

21.A,C,D 22.A,B,C,E 23.A,B,C,E 24.A,B,E 25.A,B,E

26.A,B,C 27.A,C,D 28.A,B,D,E 29.A,C 30.B,C,D

三、填空题(每小题1分,共10分)

31.11111111 32. main

33.include "math.h" 34. 2

35.5 36. 10

37. 被定义的函数体内 38. 4

39. 最大的 40.fopen("c:\\doc\\file1.txt","r");

四、简答题(第41、42每小题2分,第43、44每小题3分,共10分)

41.答:选用命令Compile to OBJ只对当前正在编辑的源程序进行编译,而选用命令Make EXE

file 是对当前正在编辑的源程序进行编译、连接。

42.答:配对关系如下:

没有与①配对的else ②---③④---⑦⑤---⑥⑧---⑾⑨---⑩43.答:字符数组的初始化是为数组的部分或所有元素赋予初始值,可以用字符对字符数组元素初始化,也可以用字符串对字符数组初始化;字符串指针变量的初始化是将字符串的首地址赋予指针变量。

44.答:fputc(ch,fp)的作用是将字符ch写入指针fp所指向的文件中。

fputs(str,fp) 的作用是将起始地址为str的字符串写入指针fp所指向的文件中。

五、阅读分析题(每小题2分,共20分)

45.答:程序的运行结果是:

5,4,5

d=65533

46.答:程序的运行结果是:

71

若将case Y-7改为case Y-8,则与第一个case 12重复,而C语言要求所有case后常量表达式的值互不相同。

47.答:程序的输出结果是:

m=1

48 答:外循环执行完一次时,m和n的值分别是9和5。

49.答:将内循环中第二条while语句删除后,外循环形成死循环,程序运行不会正常结束。

50.答:该函数的功能是:求x的n(n≥0)次方。

51.答:若考虑n<0的情况,函数修改结果如下(划线部分是增加的语句):

if(n<0) {sign=-1;n=-n;}

if(n>0) for(t=1.0;n>0;n--) t*=x;

else t=1.0;

if(sign==-1) t=1/t;

return(t); }

52.答:使用递归方法实现该函数如下:

double power(double x;int n)

{double t;

if(n==0) t=1.0;

else t=x*power(x,n-1);

return(t);

}

53.答:语句 p->next=head;的作用是使p所指结点的指针域指向单链表的表头。

54.答:语句 head=p;的的作用是使表头指针指向新插入单链表的结点。

六、程序设计题(第55题8分,第56题12分,共20分)

55.解:C语言源程序如下:

main()

{int i,s=0,t=1;

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

{t=t*i;

s=s+t;

}

printf("s=%d\n",s);

}

56.解:C语言源程序如下:

main()

{FILE *fp;

float x[7][7],sum[7],ave[7];

int i,j,n;

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

for(j=0;j<7;i++)

scanf("%f",&x[i][j]); /*输入49个浮点数*/

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

{sum[i]=0.0;

for(j=0;j<7;i++)

sum[i]+=x[i][j];

} /*求每一行的累加和*/

for(j=0;j<7;i++)

{ave[j]=0.0;n=0;

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

if(x[i][j]>0){ave[j]+=x[i][j];n++;}

ave[j]/=10;

} /*求每一列正数的平均值*/

fp=fopen("array.txt","wb"); /*打开二进制文件array.txt*/

fwrite(sum,sizeof(float),7,fp);/*写各行累加和到文件array.txt*/

fwrite(ave,sizeof(float),7,fp); /*写各列正数的平均值到文件array.txt*/

fclose(fp);

}

C语言程序设计模拟试卷(Ⅱ)

一、单项选择题(在每小题给出的四个选项中只有一个选项是符合题目要求的,请将正确选项的序号填在题后的括号内,本大题共20小题,每小题1分,共20分)

1.微处理器CPU是将集成在一块芯片上的电子器件。【】

A.运算器和内存储器

B.控制器和内存储器

C.运算器和控制器

D.运算器、控制器和内存储器

2.在一个函数的函数体中。【】

A.必须有变量定义部分

B.必须有执行语句部分

C.必须有变量定义和执行语句部分

D.可以什么也没有

3.用标识符PI代替3.14的宏定义是。【】

A. define PI 3.14

B.#define PI 3.14

C. define PI 3.14;

D.#define PI 3.14;

4.int型数据在内存的存储形式是。【】

A.原码

B.反码

C.补码

D.BCD码

5.在微机中,'\101'在内存占用的字节数是。【】

A.1

B.2

C.3

D.4

6.以下运算符中,优先级最低的运算符是。【】

A.&&

B.&

C.%

D.=

7.设有定义:char a;int b;float c,double d;执行语句:c=a+b+c+d;后,变量c的数据类。【】

A.int

B.char

C.float

D.double

8.整型变量m,n,a,b,c,d的值均为1,执行:(m=a>b)&&(n=c>d);后,m,n的值是。【】

A.0,0

B.0,1

C.1,0

D.1,1

9.已知:int x=1,y=2,z; 执行:z=x>y?++x:++y;则x,y,z的值分别是。【】

A.2,3,2

B. 1,3,3

C.2,2,2

D. 2,3,3

10.表达式:sizeof(unsigned)的值是。【】

A.1

B.2

C.4

D.8

11.下面程序的输出是。【】

main()

{int a=3,b=4;

printf("%d,%d",(a,b),(b,a));

}

A.3,4

B.4,3

C.3,3

D.4,4

12.下面程序的输出是。【】

main()

{int a=1,b=2,c=3;

if(a>b)

if(a>c) printf("%d ",a);

else printf("%d ",b);

printf("%d",c);

}

A.1 2

B.2 3

C.3

D.1 3

13.设有:int x,y;则for(x=y=0;(x<9)&&(y!=5);x++,y++)控制的循环体执行。【】

A.10

B.9

C.5

D.6

14.设有:int a[ ][3]={{0},{1},{2},{3}};则数组a第一维的大小是。【】

A.1

B.2

C.3

D.4

15.下面程序的输出结果是。【】

main()

{char s[]="Program";int i;

for(i=0;i<7;i+=2)

printf("%c",s[i]);

}

A.Porm

B.Prog

C.Program

D.gram

16.C语言中,函数返回值的类型是由决定的。【】

A.return语句中的表达式类型

B.调用该函数的主调函数类型

C.定义函数时所指定的函数类型

D.调用函数临时

17.下面程序的输出结果是。【】

int func17(int *p)

{int a=10;

*p=a++;

}

main()

{int a=5;

func17(&a);

printf("a=%d\n",a);

}

A.5

B.10

C.6

D.11

18.下面程序的输出结果是。【】

main()

{char *a="123456",*p,*q;;

p=a;q=a+5;

while(p

{printf("%c%c",*p,*q);

p++;q--;

}

}

A.123456

B.654321

C.615243

D.162534

19.下面程序的输出结果是。【】

#define MUL(x,y) (x)*(y)

main()

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

c=MUL(a+b,a+b)*b;

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

}

A.18

B.10

C.7

D.6

20.C语言的标准输入文件stdin指的是。【】

A.硬盘

B.显示器

C.键盘

D.鼠标

二、填空题(本大题共15小题,每小题1分,共15分)

21.将高级语言程序翻译成等价的机器语言程序的翻译方式有两种,一种是解释方式,另一

种是方式。

22.C语言的标识符是由字母、数字和组成的。

23.在程序运行过程中其值可以变化的量称为。

24.有语句:scanf("%3d",&a);和输入数据:23456 ,则变量a的值是。

25.设y是整型变量,描述“y是奇数”的表达式是。

26.当 x=2,y=1,z=2 时,执行以下程序段后z=。

if (x

if(y<0) z=0;

else z+=1;

27.有int i; 下面for循环体的执行次数是。

for(i=2; i==0; ) printf("%d",i--);

28.C语言的运算符中,有些运算符具有双重含义。比如:“&”,作为双目运算符时表示位逻

辑与运算,作为单目运算符时表示运算。

29.下面程序的输出结果是。

main()

{int arr[2][2]={1,3,5,7};

int i,j,s=0;

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

for(j=0;j<2;j++)

s+=*(*(arr+i)+j);

printf("s=%d\n",s);

}

30.下面的函数是求两个整数x,y的和,并通过形参z传回该和值,请填空:

void func30(int x,int y,)

{*z=x+y; return;}

31.下面的函数func31是求字符串 s的长度,请填空:

int func31(char s[])

{int *p;

for(p=s;*p!='\0';p++);

return();

}

32.若定义函数时,在函数名前有一个“*”,则该函数的返回值的数据类型是。

33.设有下面的定义语句,则枚举常量sat的值是。

enum week{mon=1,tue,wed,thu,fri,sat,sun=0};

34. 设有下面的定义语句,则变量x的数据类型是。

typedef float REAL;

REAL x;

35.程序中使用文件读写函数时,在程序开头应写上预处理命令。

三、多项选择题(在每小题给出的五个选项中有二至五个选项是符合题目要求的,请将正确选项的序号填在题后的括号内,本大题共5小题,每小题2分,共10分)

36.设有定义:int a=3,b=4; 下面表达式的值为1。【】

A.b%a

B.b/a

C.!(a==b)

D.a>b

E.a<=b

37.设有定义:char ch; 能将字符'A'赋值给ch的赋值语句是。【】

A.ch='101';

B.ch='\101';

C.ch=101;

D.ch='\x41';

E.ch=65;

38.下面程序段的执行后,输出“*”个数相同的有。【】

A.i=1;

B.i=10;

while(i<10) do{printf("*");i+=2;}

{printf("*"); i+=3;} while(i<15);

C.for(ch='A';ch<='C';ch++) printf("*");

D.i=1;

E.i=0;

while(i<10) loop:printf("*");i+=5;

{printf("*"); i+=2;} if(i<15) goto loop;

39.设有定义:char c[]="string",*p=c; 则值为字符'r'的表达式有。【】

A.c[2]

B.c+2

C.*(c+2)

D.p[2]

E.*(p+2)

40.下面的给出的定义或语句中,有错误的是。【】

A.int a=b=c=1;

B.if(a>b) m=a; else m=b;

C.struct date{int yy,int mm,int dd};

D.void func(int x,int y){return(x+y);}

E.struct {char name[9],char sex,int age;} stu,*p=stu;

四、简答题(本大题共3小题,每小题3分,共9分)

41.什么是局部变量?系统什么时候为局部自动变量分配和释放内存单元?

42.简述函数间值传递和地址传递方式的区别。

43.简述结构变量的三种定义方法?

五、程序分析题(本大题共10小题,每小题3分,共30分)

44.阅读程序,写出程序的输出。

main()

{int a=017,b=0x19;

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

a=a+b;b=a-b;a=a-b;

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

}

45.阅读程序,写出程序的输出。

main()

{int a,n,s,count;

a=2;n=1;s=1;count=1;

do{

n=n*a;s=s+n;++count;

printf("%d ",s);

}while(count<=7);

printf("\n");

}

46.阅读下面的程序,回答问题。

main()

{float x,y=0;

int n=0;

while(1)

{scanf("%f",&x);

if(x<=0) break;

y=y+x;n=n+1;

}

y/=n;

printf("y=%.2f\n",y);

}

该程序的功能是什么?

47.第46题程序中,语句:if(x<=0) break;起什么作用?去掉该行会出现什么情况?为什么?

48.阅读下面的程序,写出程序的输出。

#define N 8

main()

{int x[N]={75,72,65,68,87,73,91,69},k1,k2,i;

k1=k2=0;

for(i=1;i

if(x[k1]

if(x[k2]>x[i]) k2=i;

printf("x[%d]=%d\nx[%d]=%d\n"",k1,x[k1],k2,x[k2]);

}

49.在下面的程序中,假设b>0。请回答问题。

int func49(int a,int b)

{int m=0;

while(b>0)

{m=m+a;

b--;

}

return(m);

该函数的功能是什么?

50.在第49题的函数func49()中,若考虑b<0的情况,函数该如何修改?

51.阅读下面的程序,写出函数func51()的功能。

long func51(int n)

{long t;

if(n>0) t=n*func51(n-1);

else t=1;

return(t);

}

52.下面函数func52()的功能是显示单链表所有结点的数据,请回答问题。

struct data{int num;

struct data *next;};

void func53(struct data *head)

{struct data *p;

p=head;

while(p!=NULL)

{printf("%d\n",p->num);

p=p->next;

}

}

说明程序中语句:p=head;的作用

53.说明第52题程序中语句:p=p->next; 的作用

六、程序设计题(本大题共2小题,每小题8分,共16分)

54.设x是无符号长整数,写一程序判断x是几位数。(如:12是2位数,123是3位数)

55.编一函数,把给定的字符串从第m个字符起的n个字符组成的子字符串截取下来,组成

另一个字符串。在主函数中调用此函数并输出新字符串。已有主函数如下:

main()

{char *str1="abcdefghijklmnopqrstuvwxyz",str2[81];

int m=5,n=10;

void func55();

func55(str1,str2,m,n);

printf("截取的子字符串为:%s\n",str2);

}

根据题意和给定的主函数,请编写函数func55()。

C语言程序设计模拟试卷(Ⅱ)

参考答案

一、单项选择题(每小题1分,共20分)

1.C

2.D

3.B

4.C

5.A

6.D

7.C

8.B

9.B 10.B

11.B 12.C 13.C 14.D 15.A 16.C 17.A 18.D 19.A 20.C

二、填空题(每小题1分,共10分)

21.编译 22.下划线 23.变量 24. 234 25.y%2==1

26. 2 27. 0 28.取地址 29. s=16 30.int *z

31. p-s 32.指针型 33. 6 34. float 35.#include "stdio.h"

三、多项选择题(每小题2分,共20分)

36.ABCE 37.BCDE38.ABC 39.ACDE40.ACDE

四、简答题(第41、42每小题2分,第43、44每小题3分,共10分)

41.答:局部变量是在函数内部定义的变量,它们只在本函数范围内有效。在调用函数时,系统才为这些局部变量分配内存单元;退出函数时,为局部变量分配的存储单元就释放了。

42.答:值传递和地址传递方式的区别:值传递和地址传递方式都是在实际参数的形式参数之间传递数据。唯一的区别就是:值传递方式传递的是数值;而地址传递方式传递的是地址值。从传递数据的角度来说,值传递方式的数据传递是单向的,而地址传递方式的数据传递是双向的。

43.答:①先定义结构型,后定义变量;

②定义结构型的同时定义变量;

③定义无名称结构型的同时定义变量。

五、阅读分析题(每小题2分,共20分)

44.答:程序的运行结果是:

a=15,b=25

a=25,b=15

45.答:程序的运行结果是:

3 7 15 31 63 127 255

46.答:该程序的功能是:求键盘输入的若干正数的平均值。

47.答:语句:if(x<=0) break;的作用是当输入的数据小于或等于0时就跳出循环;去掉该行时程序将不能正常结束;因为形成了死(无限)循环。

48 答:程序的输出结果是:

x[6]=91

x[2]=65

49.答:该函数的功能是:求两个整型参数的乘积,即求a×b。

50.答:若考虑b<0的情况,函数修改结果如下(划线部分是增加的语句):

int func49(int a,int b)

{int m;

if(b<0) {a=-a;b=-b;}

while(b>0)

{m=m+a;

b--;

}

return(m);

}

51.答:该函数的功能是:求n的阶乘,即求n!。

52.答:程序中语句:p=head;的作用是使指针变量p指向单链表的第一个结点。

53.答:语句 p=p->next;的作用是使p指向单链表中的下一个结点。

六、程序设计题(第55题8分,第56题12分,共20分)

54.解:C语言源程序如下:

main()

{unsigned int x;

int n=0;

scanf("%d",&x);

while(x>0)

{n++;

x/=10;

}

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

}

55.解:C语言源程序如下:

void func55(char str1[],char str2[],int m,int n)

{int i,j;

for(i=0,j=m-1;j

str2[i]=str1[j];

str[i]='\0';

}

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

计算机C语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

C语言习题集

1、将一元二次方程的求根公式(-b+判断式的平方根)/(2a)转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun 函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。 #include #include double fun(double a,double b,double c) { double x1=0.0; //--ksstart (注释不能删除)— //考生代码从此开始编写 x1 = (-b+sqrt(b*b-4*a*c))/(2*a); //--ksend--- return x1; } main() { //求一个根 double a=0.0,b=0.0,c=0.0,x1=0.0; int n=0; printf("The a,b,c:"); scanf("%lf %lf %lf",&a,&b,&c); x1=fun(a,b,c); printf("The x1=%lf:\n",x1); } 2、函数 fun 的功能是: 将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放在 c 数的个位和百位上, b 数的十位和个位数依次放在 c 数的十位和千位上。 例如, 当 a=45, b=12, 调用该函数后, c=2514 。 注意: 部分源程序存在文件 PROG1.C 中。数据文件 bc.in 中的数据不得修改。请勿改动主函数main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include #include long fun(int a, int b) { long c=0; //--ksstart(注释不能删除)— //考生代码从此开始编写 int c1,c2,c3,c4; c1 = b%10; c2 = a%10; c3 = b/10;

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

c语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #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、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #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) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

C语言习题集及答案..

目录 第一单元程序设计和C语言 (1) 第二单元顺序程序设计 (3) 第三单元分支程序设计 (7) 第四单元循环程序设计 (14) 第五单元数组..................................................................... 错误!未定义书签。第六单元函数 (23) 第七单元指针..................................................................... 错误!未定义书签。第八单元结构体和共用体..................................................... 错误!未定义书签。第九单元文件..................................................................... 错误!未定义书签。附加题......................................................................................... 错误!未定义书签。模拟试卷一................................................................................. 错误!未定义书签。模拟试卷二................................................................................. 错误!未定义书签。模拟试卷三................................................................................. 错误!未定义书签。

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语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言练习题及答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

趣味c语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

C语言习题全集+答案

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

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 1、下面程序的输出是___D______ #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、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是________D____. A) true B) 非零值 C) 0 D) 1 5、C语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include<> void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include<> void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include<> void main() {int x=10,y=3; printf("%d\n",y=x/y); }

相关文档