C语言综合练习题

更新时间:2024-03-07 16:15:47 阅读: 评论:0

2024年3月7日发(作者:成长作文200字)

C语言综合练习题

《C语言程序设计》综合练习题

一、单项选择题

1. 下列( D )是字符串比较函数。

A. puts() B. gets() C. strcpy () D. strcmp()

2.构成一个完整的C源程序必须有且只有一个( C )。

A. 函数 B. 过程 C. 主函数 D. 程序

3. 设有int i,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为( A )。

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

4.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是( D )类型数据。

A.int B.char C.unsigned D.long

5.下列( D )不是构成标识符的字符。

A.字母 B.数字 C.下划线 D.标点符号

6.表达式:3>5&&-1||6<3-!-1的值是( A )。

A. 0 B.1 C. 表达是不合法 D. 均不对

7. 以下标识符中能做为合法的C用户标识符的是( D )。

A. A3+B3 B. float C. 3dx D. x3d

8. 以下数据中不正确的数值或字符常量是( B )。

A. 0.0 B. 3E2.7 C. 9861 D. 0xabcd

9. fp=fopen(''",''r''); 语句中,r对文件处理方式是( A )。

A. 只读打开文件 B. 只写打开文件

C. 追加打开文件 D. 读写打开文件

10.表示关系x<=y<=z的C语言表达式为( A )

A. (x<=y)&&(y<=z) B. (x<=y)and(y<=z)

C. (x<=y)&(y<=z) D. (x<=y<=z)

11.如果要把常量327存入变量a中,a不能定义的类型是( B )。

A. int B. char C. long D. float

12. 在变量的存储结构中,( B )局部变量的初始化只有一次。

A. 自动 B. 静态 C. 外部 D. 寄存器

13.下列能正确进行字符串赋值操作的语句是( C )。

A. char s[5]={ "ABCDE"}; B. char s[5]={ 'a', 'b', 'c', 'd', 'e'}

C. char *s;s="abcde"; D. char *s; scanf("%s",s);

14.语句if(3/4>1/2)a=1;el a=0; 运行后,a的值是( A )。

A. 1 B. 0 C. 与机器有关 D. 语法有错

15.下列( C )是合法自定义标识符。

A. 3ma B. float C. m3a D. –ab

16.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是( D )

A. 'a' && 'b' B. a<=b

C. c>=b||b+c&&b-c D. a<=b+c&&c>=a+b

17.判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回

0)是( B )。

A. !(i%2)||!(j%2) B. !(i%2)&&!(j%2)

C. (i%2)&&!(j%2) D. (i%2)||(j%2)

18.若x,y均为double型变量,正确的输入函数调用是( C )。

A. scanf("%f%f",&x,&y); B. scanf("%d%d",&x,&y);

C. scanf("%lf%lf",&x,&y); D. scanf("%lf%lf",x,y);

19. 设变量均为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是( B )。

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

20.当执行以下程序段时( A )。

x= -1;

Do {x=x*x;}while(!x);

A. 循环体将执行一次 B. 循环体将执行两次

C. 循环体将执行无限次 D. 系统将提示有语法错误

21.执行下列程序段后,a值为( A )。

a=1;b=0;

if((a++>++b)?a++;b--) a+=b;

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

22.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数调用是( A )。

A. printf("%c%c",x,y); B. printf("%c%s",x,y);

C. printf("%f%c",x,y); D. printf("%f%d",x,y);

23.假定a和b为int型变量,则执行以下语句后b的值为( D )。

a=1;b=10

do

{b-=a;a++;

}while (b--<0);

A. 9 B. -2 C. -1 D. 8

24.设有说明语句:int x=43,y=0;char ch='A';,则表达式(x>=y && ch<'b' && !y)的值是( C )。

A. 0 B. 语法错 C. 1 D. 假

25.假定a和b为int型变量,则执行以下语句后b的值为( D )。

a=1;b=10;

do

{ b-=a;a++;

} while (b--<0);

A. 9 B. -2 C. -1 D. 8

26.下列不正确的转义字符是( C )。

A. '' B. ''' C. '074' D. '0'

27.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为( D )。

A. 98,b B. 语句不合法 C. 98,99 D. 98,c

28.下列( B )说法,是对“int *p;”正确解释。

A. 定义p是整型变量 B. 定义p为指向整型变量的指针变量

C. 定义p为数组名 D. 定义p的内容为整形地址

29.以下各组运算符中,优先级最高的运算符是( B )。

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

30.表示关系x<=y<=z的C语言表达式为( A )。

A. (x<=y)&&(y<=z) B. (x<=y)and(y<=z)

C. (x<=y<=z) D. (x<=y)&(y<=z)

31.下列程序段执行后s值为( C )。

int i=1,s=0;

do{if(!(i%2))continue;s+=i}while(++i<10);

A. 1 B. 45 C. 25 D. 以上均不是

32.若x,y均为int型变量且有值,要输出x,y的值,正确的输出函数调用是( D )。

A. printf("%d%d",&x,&y); B. printf("%f%f",x,y);

C. printf("%f%d",x,y); D. printf("%d%d",x,y);

33.字符串“c program”存放在内存中占用字节数为( A )。

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

34.下列程序段运行后x的值是( D )。

A. 14 B. 4 C. 15 D. 3

int al=1,a2=2,a3=3,x=15;

if (!al) x--;

el if (a3) x=3;

el x=4;

35.对于int a,则表达式1<=a<=5值是( B )。

A. 0 B. 1 C. 不定 D. 表达式语法有错

36.变量的存储类型有四种。下列( D )的存取速度最快。

A. 自动变量 B. 静态变量

C. 外部变量 D. 寄存器变量

37.假定a和b为int型变量,则执行以下语句后b的值为( A )。

a=1;b=10;

do

{b-=a;a++;}

while(b--<0);

A. 9 B. -2 C. -1 D. 8

38.设有以下程序段:

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d ",s);

则( B )。

运行程序段后输出0

A. 运行程序段后输出1

B. 程序段中的控制表达式是非法的

D. 程序段执行无限次

39.设x和y均为int型变量,则执行以下语句后的输出为( A )。

x=15;y=5;printf("%dn",x%=(y%=2));

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

40.已知字母a的码值为十进制97,数字0的码值为十进制48,下面程序的输出是( D )。

A. 输出无定值 B. e,4 C. 101,52 D. e,52

#include

int main()

{char c1,c2;

c1='a'+'6'-'2';

c2='b'-'a'+'3';

printf("%c,%dn",c1,c2);

return 0;

}

41.若x和y都是int型变量,x=100,y=200,则下列程序段:printf(''%d'',(x,y));的输出结果是( A )。

A.200 B.100

C.100 200 D.输出格式符不够,输出不确定的值

42.假设定义数组:float score[10]; 并且其地址为2000,则元素score[5]的地址为( D )。

A. 2005 B. 2010 C. 2015 D. 2020

43.假定p所指对象的值为25,P+1所指对象的值为46,则*(++p)的值为(C )。

A. 26 B. 25 C. 46 D. 47

44.若i为整型变量,则以下循环执行的次数是( B )。

For(i=2;i==0;)printf(''%d'',i--)

A.无限次 B.0次 C.1次 D.2次

45.设C语言中,一个int型数据在内存中占2个字符,则unsigned int型数据的取值范围为( C)。

A. 0~255 B. 0~32767 C. 0~65535 D. 0~

46.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数时,正确的数据输入方式是( C )。

int a1,a2;char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A. 10A 20B B. 10 A 20 B

C. 10A20B D. 10A20 B

47.阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为( D )。

#include

int main()

{int x,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%dn", x+y+z);

return 0;

}

A. x+y+z= 48 B. x+y+z= 35 C. x+z=35 D.不确定值

48.表示图中坐标轴上阴影部分的正确表达式是( C )。(其中a

X

c

a

b

A. (x<=a)&&(x>=b)&&(x<=c) B. (x<=a)||(b<=x<=c)

C. (x<=a)||(x>=b)&&(x<=c) D. (x<=a)&&(b<=x<=c)

49.设有以下程序段:

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d ",s);

则( B )。

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次

二、判断题

1.打开文件的函数是fclo。( X )。

2.局部静态变量是在编译时赋初值的,即只赋初值一次。( O )

3.C语言中允许使用字符串变量。( X )

4.外部变量必须定义在文件的开头部分。( X )

5.语句while(!E);中的表达式!E等价于E= =0。( O )

6.实型分类:单精度、双精度和整型。( X )

7.逻辑运算优先级别都低于算术运算。( X )

8.函数的形参在退出该函数后是不可见的。( )

9.如果在定义函数时省略extern,则隐含为外部函数。( X )

10.定义二维数组时,第一维长度可以省略。( O )

11.字符'0'是字符串的结束标记,其ASCII代码为0。( O )

12.若有int i=10,j=0; 则执行完语句if(j=0)i++;el i--; i的值为11。( X )

13.continue语句的作用是提前结束整个循环的执行。( X )

14.Break语句的作用是提前结束整个循环的执行。( O )

15.在定义函数时的参数是“形式参数”,在调用函数时的参数是“实际参数”。( O )

16.在函数调用时,实参和形参的变量个数可以不一样多。( X )

17.在函数调用时,实参和形参的变量个数一定要一样多。 ( )

18.若有说明:int a[][4]={{0},{0}}则二维数组a的第一维大小为0。( X )

19.字符串"china"在内存中占据的存储空间是5个字节。( X )

20.打开文件的函数是fclo。( X )

21.打开文件的函数是fopen( O )。

22.若有说明:sratic int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。( O )

23.假设定义数组:float score[10];并且其地址为2000,则元素score[5]的地址为2005(X)。

24.C语言的基本单位是函数。( O )

25.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为: 98,99。( X )

26.从变量的作用域来分,变量可以分为静态变量和动态变量。( X )

27.若用数组名作为函数调用时的实参,则实际上传递给行参的是数组的第一个元素值(X)

28.结构体和数组一样,它们的成员都是相同类型数的集合。( X )

29.调用strlen("abc0ef0g")的返回值为8。( X)

三、填空题

1.如果希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,就应该指定它为 静态局部变量 ,用 static 进行声明。

2. 结构化程序设计方法中,程序有三种基本结构,即: 顺序结构 ,

选择结构 和 循环结构 。

3.若int i=8,j=9;float x=123.456;printf(''x=%8.3f,j=%-4dn'',x,j);结果为: x= 123.456

j=9 。

4.设C环境下一个int型数据占用2个字节,设int a[4]={1,2,3,4},*p=a;其中a=2000;则*p= 1 ,p+1= 2002 ,*(p+2)= 3 。

5.在C语言中,表示逻辑“假”值用 0 。

6.设C环境下一个int型数据占用2个字节,设int a[5]={5,4,3,2,1},*p=a;其中a=2000;则 *p= 5 ,p+3= 2006 ,*(p+2)= 3 。

7.用户定义函数体部分一般分为 说明部分 和 语句部分 两部分。

8.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

for(i=0;i<26;i++) putchar(‘Z-I’) ;

9.C语言中函数的参数分为 形参 和 实参 。

10.用户自己建立的由不同类型数据组成的组合型的数据结构称为 结构体

类型,它的名字是由一个关键字 struct 和 结构体名 组合而成。

11.建立并运行C 程序的最简步骤为_ 编辑 , 编译和链接 和

运行 。

12.转义字符“n”表示 换行 。

13.直接或间接调用自身的函数称为 递归 函数。

14.int*p和int**p;含义分别是定义一个指向整形数据 的指针变量

和定义一个指针变量p,它指向一个指向整型数据的指针变量

15.语句printf("%d%d",123);将输出: %d123 。

16.转义字符“n”表示 换行 。

17.C语言中,表示逻辑“真”用: 非零 表示,逻辑“假”用: 零 表示。

18.表达式12345===12345/3*3的值为__ 1 __。

19.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是 -6 。

20.已知int a=4,b=20,x=3;则:

(1)a+x*(int)(2.5/0.7)的值为: 13 。

(2)(a+3)/3+a%b的值为: 6 。

(3)x*=5+4的值为: 27 。

21.用数组元素作实参时,向形参变量传递的是 数组元素的值 ,而用数组名作函数实参时,向形参传递的是 数组首元素的地址 。

22.int a=10,b=15,c=1,d=2,e=0,则下列表达式的运行结果是:

(1) !e 1

(2) c==b>e 1

(3) (b==10)&&(a==10) 0

(4) (a+5==b)||((c=b+a)>(d=c+b)) 1

23.表达式4>10?(5>3?(4,2):3):(6,7)的值为 7 。

24.在C语言中,逻辑“真”值用 1 表示。

25.strcat(ch1,ch2)的功能是: 将ch2的内容接到ch1后面,得到新的字符串

ch1 。

26.strlen("Guangzhou tvu")的值为 14

27.若有定义:double x[3][5]; 则数组中行下标的下限为 0 ,列下标的上限为 4

28.写出i小于0或大于10时为真的表达式: i<0||i>10 。

29.一个函数由两部分组成,即: 函数的声明部分 和 函数体部分 。

30.数组元素的相关性表现在它们具有相同的 名字 和 类型 。

31.以下程序实现输出x,y,z三个数中的最大者,请在【】内填入正确内容。

#include

main()

{

int x=4,y=6,z=7;

int【① u,v 】;

if (【② x>y 】)

u=x;

el

u=y;

if (【③ u>z 】)

v=u;

el

v=z;

printf ("v=%d",v);

}

32.在C语言中用 0 代表“假”,用 1 代表“真”。但只要 非0 则都认为是“真”。

33.用来引用特定数组元素的数字称为 下标 。

34.一个C程序总是从 main()函数的入口地址处 开始执行的。

35.下面程序的功能是用公式6261111+++……+求π的近似值,直到最后一2222123n项的值小于10为止。请填空。

#include

#include

int main()

{

long i=1;

【① float 】pi=0;

while (i*i<=1e+6)

{pi=【② pi+1.0/(i*i) 】; i++; }

pi=sqrt(6.0*pi);

printf("pi=%10.6f/n",pi);

}

36.若所用变量已正确定义,写出下列FOR循环的次数为: 5 。

a=2,b=10;

for (i=b;i>=a;i--,a++)

printf("%3d",i);

37.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

for(i=0;i<26;i++) putchar(‘Z-I’) ;

38.一个源文件可以包含一个或者若干个函数。在函数内定义的变量是 内部变量,而在函数之外定义的变量称为 外部变量 。 外部 变量是全局变量。

39.C语言中根据数据的组织形式,可以将文件分为文本文件 和 二进制文件 。

40.要把一个外部变量只限制于被本文件使用,而不被其他文件引用,必须在定义这个外部变量时加一个 static声明 。

41.写出下列程序段的运行结果: s=0 。

s=7;

while(--s)

s-=2;

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

42.C语言规定:在每一个字符串的结尾加上一个 字符串结束标志”0” ,以便系统据此判断字符是否结束。

43.break语句只能用在 循环 语句或 多分支选择 语句中。

44.Continue语句只能用在___ 循环 __语句中。

45.结构化程序设计方法中,程序有三种基本结构,即: 顺序结构 , 选择结构 和 循环结构 。

46.设有int a,b;当执行输入函数scanf(“%d:%d”,&a,&b);时正确的输入是 5:8 。

四、问答题

1.请阅读下面的程序:

#include

int main()

{int cal(int a,int b,char op);

int x,y,z,result;

char op1,op2;

scanf("%d%c%d%c%d",&x,&op1,&y,&op2,&z);

if(op1=='+'&&op2=='*')

result=cal(x,cal(y,z,op2),op1);

el

result=cal(cal(x, y, op1),z, op2);

printf("%dn",result);

return 0;

}

int cal(int a,int b,char op)

{

if(op=='*')

return(a*b);

el

return(a+b);

}

问题1:当输入2+3*5时,上述程序将输出 17 。

问题2:把op1= ='+' && op2= ='*' 中的 op1,op2对调后,当输入为2+3*5时,上述程序将输出 25 。

2.试阐述'x'和"x"的区别。

'x'表示字符常量,占一个字节;"x"表示字符串常量,占2个字节

3.写出以下程序的运行结果。

#include "stdio.h"

int main()

{

struct stu_list

{

int num;

char *name;

}sl={34, "sun"};

printf ("Number=%dtName=%sn", ,);

return 0;

}

该程序的运行结果为: Number=34 Name=sum

4.假设有以下程序段:

int a[10];

……

a[10]=3;

……

试分析两个a[10]的区别。

答:前一个a[10]定义一个int数组,数组名为a,有10个元素;后一个a[10]表示数组a中的一个元素,下标是10,该元素越界。

五、阅读程序题

1. 以下程序的执行结果是 817 。

#include

int main()

{

int func(int a,int b);

int k=4,m=1,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%dn",p);

return 0;

}

func(int a,int b)

{

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

2. 该程序运行结果为: 4 1 3

2 4

#include "stdio.h"

int main()

{

int a[5]={1,2,3,4,5},*p,i;

p=a;

printf("%dt%dt%dn",a[3],*p,*(p+2));

p++;

printf("%dt %dn",*p,a[3]);

return 0;

}

3.以下该程序运行结果为: 2 5 3

4 2

4 2

#include "stdio.h"

int main ()

{

int a[5]={5,4,3,2,1},*p,i;

p=a;

printf ("%dt%dt%dn",a[3],*p,*(p+2));

p++;

printf ("%dt%dn",*p,a[3]);

return 0;

}

4. 阅读以下程序

#include "stdio.h"

main()

{

char c;

c=getchar();

switch(c)

{

ca 'a':

ca 'A':printf("BASICn");break;

ca 'b':

ca 'B':printf(FORTRANn");break;

ca 'c':

ca 'C':printf("PASCALn");break;

default:printf("n");

return 0;

}

请回答:输入d,回车,运行结果为:

输入a,回车,运行结果为: BASIC

5. 以下程序的运行结果是: sum=248

#include "stdio.h"

int main()

{int x,sum=3;

int a[]={70,80,90,65,75,95,60,80};

for (x=1;x<7;x*=2)

sum=sum+a[x];

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

return 0;

}

6.以下程序的运行结果是运行结果: 10,32,13,24,45,96,17,81,9

10,32,24,96

#include "stdio.h"

int main()

{void pr(int *p);

int a[]={10,32,13,24,45,96,17,81,9,-999};

int i,*pa;

pa=a;

for(i=0;a[i]!=-999;i++)

printf("%d,",a[i]);

printf("n");

pr(pa);

return 0;

}

void pr(int *p)

{while(*p!=-999)

{if(*p%2==0)printf("%d,",*p);

p++;

}

printf("%n");

}

7. 阅读以下程序

#include "stdio.h"

int main()

{

char c;

c=getchar();

switch(c)

{

ca 'b':

ca 'B': printf("BASICn");break;

ca 'f':

ca 'F': printf("FORTRANn"); break;

ca 'p':

ca 'P': printf("PASCALn"); break;

default: printf("n");

}

return 0;

}

请回答:输入p,回车,运行结果为: PASCAL

输入a,回车,运行结果为:

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

#include

int main()

{

int func(int x);

printf("%dn",func(9));

return 0

}

func(int x)

{

int p;

if(x==0||x==1)

return(3);

p=x-func(x-2);

return p;

}

9. 以下程序的运行结果是: 6 11

6 11

#include "stdio.h"

int main()

{

void f(int n);

int m=4;

f(--m);

f(++m);

return 0;

}

void f(int n)

{

int x=5,y=10;

if (n>0)

printf("%dt %dt n",++x,++y);

}

10. 以下程序的运行结果是: 11 10 9 10

#include "stdio.h"

int main()

{int m=10;

printf("%dt%dt",++m,m--);

printf("%dt%d",--m,m++);

printf("n");

return 0;

}

11. 以下程序的该程序运行结果为: 6 11

#include "stdio.h"

int main()

{

void f(int n);

int m=1;

f(--m);

f(++m);

return 0;

}

void f(int n)

{

int x=5,y=10;

if (n>0) printf("%dt %dtn",++x,++y);

}

12. 以下程序的执行结果是 4 。

#include

int main()

{

int funcl(int a,int b);

int func2(int a,int b);

int x=7,y=17;

printf("%dn",funcl(x,y));

return 0

}

int funcl(int a,int b)

{

int c;

a+=a;

b+=b;

c=func2(a,b);

return(c*c);

}

int func2(int a,int b)

{

int c;

c=a*b%3;

return(c);

}

13. 以下程序的执行结果是 x=-7,y=-10,m=2 。

#include

int x=-8,y=100;

int main()

{

int func(int a);

int m=2;

y=func(m);

printf("x=%d,y=%d,m=%dn",x,y,m);

return 0

}

int func(int a)

{

int y;

y=x+a;

x++;

a++;

return(x+y+a);

}

14. 以下程序的程序运行结果为: 8 10 12 14 16

#include "stdio.h"

int main()

{ int n=7;

while (n<=15)

{n++;

if(n%2!=0)

continue;

printf("%dt",n);

}

printf("n");

return 0;

}

15. 以下程序的运行结果为: Number=34 Name=sun

#include "stdio.h

int main()

{

struct stu_list

{

int num;

char *name;

}sl={34, "sun"};

printf ("Number=%dtName=%sn", ,);

return 0;

}

16. 以下程序的运行结果为: sum=248

#include "stdio.h"

int main()

{ int x,sum=3;

int a[ ]={70,80,90,65,75,95,60,80};

for (x=1;x<7;x*=2)

sum=sum+a[x];

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

return 0;

}

17. 以下程序的功能是: 将a数组中的5个数按升序排序

#include "stdio.h"

int main()

{

int a[5]={31,6,31,65,41},i,j,m,k;

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

{

k=i;

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

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

if (k!=j)

{m=a[k];a[k]=a[i];a[i]=m;}

}

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

printf("%dt",a[i]);

return 0;

}

18. 以下程序的执行结果是 11 10 9 10 。

#include

int main()

{int m=10;

printf("%dt%dt",++m,m--);

printf("%dt%d",--m,m++);

printf("n");

return 0;

}

六、程序完整填空

1. 连续向数组输入成绩,当输入负数时停止接收数据,显示数组元素的值。

#include "stdio.h"

int main()

{int n=0;

int c[100];

do

{printf("enter num:n");

[1] scanf("%d",&c[n]) ;

n++;

}while( [2] c[n-1]>=0 );

for(n=0;c[n]>=0;n++)

printf("%d,",c[n]);

printf("n");

return;

2.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。

#include "stdio.h"

int main()

{

int n=0,c;

c=getchar();

while( [1] c!='n' )

{

if( [2] c>='0'&&c<='9' ) n++;

c=getchar(

}

printf("the number of digits is:%d",n);

printf("n");

return 0;

}

3. 统计出读入的10个数据中,求出大于0的整数个数和小于0的整数个数。

#include

int main()

{int i,j,n=1,a;

i=j=0;

scanf ("%d",&a);

while [1] n<=10

{if (a>0) i= [2] i+1 ;

if(a<0) j= [3] j+1 ;

[4] scanf ("%d",&a) ;

[5] n++ ;

}

pintf("%i=%4d j=%4dn",i,j);

return 0;

}

4.将一维数组的数据按从大到小排序输出。

#include "stdio.h"

int main()

{int i,j,temp;

int a[8]={50,80,70,45,90,65,78,95};

for( [3] i=0 ;i<7;i++)

for(j= [4] j+1 ;j<8;j++)

if( [5] a[i]

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

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

printf("%dt",a[i]);

printf("n");

return 0;

}

5.以下程序的功能是根据输入的'y' ('Y') 与'n' ('N'),在屏幕上分别显示出''This is YES. ''与''This is YES. ''。请填空。

#include

Int main()

{

void YesNo(char ch);

char ch;

printf(''nEnter a char 'y', 'Y' or 'n', 'N':'');

ch = [1] getchar() ;

printf(''ch:%cn'',ch);

YesNo(ch);

return 0

}

Void YesNo(char ch)

{

Switch(ch)

{

Ca 'y':

Ca 'Y':printf(''nThis is YES.n''); [2] break ;

Ca 'n':

Ca ‘N’:printf(''nThis is No.n''); [3] break ;

}

}

6.三十六个人抬三十六块砖。每个男人挑两块,每个女人搬一块。两个小孩抬一块。问要多少男人,多少女人和多少小孩?

#include

int main()

{ [1] int i,j,k ;

for (i=0;i<= [2] 18 ;i++)

for (j=0;j<= [3] 36 ;j++)

for (k=0;k<= [4] 72 ;k++)

if ( [5] (i+j+k==36) && (2*i+j+k/2.0==36.0) )

printf("%d,%d,%dn",i,j,k);

return 0;

}

7.从键盘接收三个值,找出最大在MAX中。

#include

int main()

{int a,b,c,max;

scanf("%d,%d,%d", [1] &a,&b,&c );

max=(a>b)? [2] a : [3] b ;

max= [4] c>max ? [5] c : [6] max ;

printf("%d",max);

return 0;

}

六、程序改错(每个程序有若干处错误,用注释符号“//”在有错误的语句后面说明如何修改错误)

1.

#include

int main ()

{ fo1at a,b,c; // fo1at应改为float

a=2,b=4,c=9;

int i; //for语句后面的“;”应去掉

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

print ("%d%d%dn",a,b,c ); //应改为printf ("%f%f%fn",a,b,c);

return 0;

}

2.

#include "stdio" //#include "stdio.h"

int main();

{

void f(int x1,int x2);

int a2;a3;i; //int a2,a3,i;

int a(5)=[3;5;6;7;5]; // int a[5]={3,5,6,7,5};

for (i=0,i<5,i++) // for (i=0;i<5;i++)

if ( a(i)=5) printf("a=%dt",a(i)); // if ( a[i]==5) printf("a=%dt",a[i]); /*若a数组元素的值等于5,则输出*/

a2=4;a3=6;

f(a2;a3); // f(a2,a3);

return 0;

}

void f(x1,x2) // void f(int x1,int x2)

{

int x3;

x3=x1

printf("%dn",x3);

retrnu; // return;

}

3.

#include //#include

int main ()

{void f(int x1,float x2); // void f(int x1,int x2);

int a2,a3,i;

int a(5)=[3,5,6,7,5]; //int a[5]={3,5,6,7,5}

for (i=0,i<5,i++) // for (i=0;i<5;i++)

if(a(i)= =5) // if(a[i]= =5)

printf("a=%dt",a(i)); // printf("a=%dt",a[i]);

a2=4;a3=6; // a2=4;a3=6;

f(a,a2,a3); // f(a2,a3);

return 0;

{

void f(int x1,int x2)

{

int x3;

x3=x1

printf( "%dn",x3);

return; // return;

}

4.

#include

Int main ()

{int a,b;

scanf("%f, %f,a,b); //应改为scanf("%d, %d",&a,&b);

if a>b //应改为if (a>b)

printf ("%d",A) //应改为printf ("%d",a);

el

printf ("%d",B) //应改为printf ("%d",b);

return 0;

}

C语言综合练习题

本文发布于:2024-03-07 16:15:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1709799347153847.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C语言综合练习题.doc

本文 PDF 下载地址:C语言综合练习题.pdf

标签:变量   函数   程序   数组
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|