文档库 最新最全的文档下载
当前位置:文档库 › c语言经典练习题

c语言经典练习题

c语言经典练习题
c语言经典练习题

练习题汇编

习题一 C语言概述

一、单项选择题

1.C语言的基本单位是。

A) 标识符 B) 函数 C) 表达式 D) 语句

2.C程序是由构成的。

A) 主程序与子程序 B) 主函数与若干子函数

C) 一个主函数与一个其他函数 D) 主函数与子程序

3.下列字符属于键盘符号的是。

A) \n B) \ C) \t D) \b

4.不是C语言提供的合法的关键字是。

A) Case B) Switch C) chher D) default

5.正确的标识符是。

A) b-2 B) ?b C) b=3 D) b·3

6.在C语言程序中,main函数的位置。

A) 必须作为第一个函数 B) 必须作为最后一个函数

C) 可以任意 D) 必须放在它所调用的函数之后

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

A) \ \ B) \ \ x 00 C) \00 D) \ 09

8.以下不是二进制代码文件

A) 标准库文件 B) 目标文件 C) 源程序文件 D) 可执行文件

二、填空题

1.一个完整的C程序至少要有一个函数。

2.转义字符是由符号开始的单个字符或若干个字符组成的。

3.C语言的词类主要分为、、、、和

等6类。

4.C程序是由函数构成的,其中有并且只能有个主函数。C程序的执行总是由

函数开始,并且总是在函数中结束。

5.ANSI C标准中规定了个关键字。

6.构造标识符的规则是。三、应用题

1.写出一个C程序的构成。

2.C语言以函数为程序的基本单位,有什么好处?

3.编写一个程序,输入a,b,c三个值,输出其中的最大者。

4.什么叫程序流程图,用流程图描述算法有什么优点?流程图符号使用时,应遵循什

么规则?

5.求1+2+3+……+100。用流程图描述算法。

6.判断一个数n能否同时被3和5整除,用流程图描述算法。

习题二数据类型和运算

一、选择题

1.下列标识符中不合法的是。

A) student_name B) name C) name8 D) 3DS

2.运行下面程序段的输出结果为。

a=15;b=5;

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

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

A)c=20 B) c=10 C)c=30 D)无具体输出

3.若a为整型变量则以下语句:

int a= -2L;

printf(″%d\n″,a);

则输出结果为________。

A)赋值不合法 B)输出-2 C)输出不确定 D)输出2

4.若x,z均为int型变量,则执行下面语句后,z值为______

x=4;

z= ——x*——x*——x;

A)64 B)1 C)6 D)24

5.若int类型占两个字节,则执行以下语句输出为_______

int k=-1;

printf(″%d,%u\n″,k,k);

A)-1,-1 B)-1,65536 C)-1,32768 D)-1,65535

6.设在C语言中,int类型数据占2个字节,则long类型占_____字节,unsigned int 占_______个字节,short类型占________个字节。

A)4,2,2 B)2,1,1 C)4,2,1 D)4,4,2

7.若x为float型变量,则以下语句_____

x=223.82748

printf(″% 6.2f\n″,x);

A)输出为223.8 B)输出为223.83 C)不能输出 D)输出为223.82

8.说明语句char s='\092′;使s包含了几个字符?

A)1个 B)3个 C)4个 D)说明不合法,s值不确定

9.设x和y均为float型变量,则以下______语句是合法的赋值语句。

A)++x B)y=float(3) C)y=(x%2)/10 D) *x=10

10.已知w=1,x=2,y=3,z=4,a=5,b=6,则执行下面语句a,b的值为________

(a=w>x)&&(b=y>z)

A)1和1 B)0和6 C)5和0 D)0和0

11.设m,n,a,b,c,d均为0,执行“(m=a==b)||(n=c==d)”后,m,n的值是

12.若a,b,c均为int型变量,则执行以下语句后,a,b值分别为_________ a=b=c=1

++a ‖++b && ++c;

A)1,1 B)1,2 C)2,1 D)2,2

13.下列程序的输出结果为________

# include

main()

{ int m=010,n=10;

printf(″%d,%d\n″,++m,n- -);

}

A)11,10 B)9,10 C)010,9 D)10,9

14.在下列运算符中,优先级别最高的运算符是。

A)= B)% C)>= D)&&

15.设整型变量x,y,z均为3,表达式x+ + +y+ + +z+ +的结果是 .

A)9 B)12 C)11 D)表达式出错

16. 设a=1,b=2,c=3,d=4,则表达式a

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

二、填空题

1.在C语言中的字符常量包括________、________和________等3种,其中,'\n′表示________、′\t′表示________、′\b′表示________ 、′\f′表示_______、′\a′表示________。

2.变量是在程序运行过程中________,变量的三要素是________、________和________等。短整型变量是用________来说明的,其取值范围是________。长整型变量是用________来说明的,其取值范围是。无符号短整型变量是用________来说明的,其取值范围是________,无符号长整型变量是用来说明的,其取值范围是________。

3.具最高优先级的算术运算符是________,具有最低优先级的算术运算符有________,满足左结合的算术运算符有________,满足右结合的算术运算符有________。

4.数据类型的自动转换指的是________,强制类型转换的一般形式是________,其功能是 .

5.已知a=6,b=4,计算下列表达式的值是________。

(1)b+=3; (6)a&&0

(2)a++ (7) a ‖b&&(a-b*2)

(3)++a (8)!(a‖0)

(4)10==a+b (9)a>=5&&b<3

(5)b=a+b (10)(a/2>=b)?1:0

三、运行程序题

1、下面程序的输出结果为_________

#include

main()

{ int m=010,n=10

printf(″%d,%d\n″,++m,n- -);

}

2、下面程序的输出结果为_________。

#include

main()

{ int m=7,n=4;

float a=38.4,b=6.4,x;

x=m/2+ n*a/b+1/2;

printf(″%f\n″,x)

}

3、下面程序的输出结果为________。

#include

#include

main()

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

float x=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf(″%f\n″,z);

}

四、编写程序题

1.求下列表达式的值.

(1)x+a%3*(int)(x+y)%2/4;

设 x=2.5, a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y;

设a=2,b=3,x=3.5,y=2.5

2.写出下列表达式运算后的a的值,设原来a=12。设a和n都已定义为类型变量。

(1)a+=a (2) a-=2

(3) a*=2+3 (4) a/=a+a

(5) a%=(n%=2),n的值等于5

(6) a+=a-=a*=a

3.编写求359÷8的商和余数的程序。

4.已知,为127,b为18,c为15,d为80,编写值的程序。

5.从键盘输人三角形的三条边a,b,c,计算三角形的面积area的程序。

6.从键盘输入一个字符,找出它的前导字符和后继字符,并按ASCII值,从大到小顺序输出这3个字符及其对应的ASCII码值的程序。

习题三输入和输出

一、选择题

1.下列程序的输出是________。

#include

main()

{ int a=1,b=2;

printf(″%d\n″,a=a+l,a+6,b+2)

}

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

2.若n为int变量,则执行以下语句后,其输出为________

n=32767;

printf(″%010d\n″,n);

printf (″%10d\n″,n);

A)00000 32767 B) 32767

32767 000003276,

C)32767 D)输出格式描述符不合法

32767 32767

3.设以下各变量均为int型变量,则以下函数调用不正确的是________。

A)getchar( ) B)putchar('\')

C)putchar('\108′) D)scanf"%d%*2d",&a,&d)

4.若x为int型变量,y是float型变量,所谓用输入语句形式为:

scanf(″x=%d,y=%f″,&x,&y);

则将使x=20,y=166.6,正确的输入是________

A)20 166.6 B)x=20 y=166.6

C)20 D)20,166.6

166

5.执行语句printf(″He question is in c:\\tools\book.exe″);,其输出结果为________。

A) He question is in c:\\tools\book.exe

B) He question is in c: oolsook.exe

C) He question is in c:\toolsook.exe D)出错,不能输出

6.若d1,d2,d3,d4均为char型变量,则下面语句执行后结果为,

d1='1';d2='2';

d3='3';d4='4';

printf("%1c\n",d1);

prinf("%2c\n",d2);

printf("%3c\n",d3);

printf("%4c\n",d4);

A)1 B)1 C)1 D)输出格式描述符不合法

2 ∪2 02

3 ∪∪3 003

4 ∪∪∪4 0004

二、填空题

1.字符输入函数getchar( )以键结束输入,它的返回值是。其功能是。

2.标准格式输入函数的功能是,其中“%”号是,格式说明符是用来,“o”字符表示,“f”字符表示,“c”字符表示,“s”字符表示。

3.字符输出函数putchar( )用于输出,使用该函数时,需要在程序头部写入

语句。

4.标准格式输出函数phintf( )的功能是,其中“%”号是,格式说明符是用来,“o”字符表示,“f”字符表示,“c”字符表示,“s”字符表示“g”字符表示。

5.printf( )函数中反斜杠字符常量“\n”表示、“\t”表示、“\v”表示、“\r”表示、“\f”表示。

三、运行程序题

1.有下面程序,运行结果是。

main( )

{ int a,b,c;

a=(b=(c=3)*5)*2-3;

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

2.有下面程序,运行结果是。

#define sar(x)x*x

main( )

{ int p;

p=50/sqr(50);

print("p=%d\n",p);

3.有下面程序,运行结果是。

main( )

{ int a=5,b=10;

float x=34.73125;

char c=‘A’;

print("%3d%3d\n",a,b);

print("%d,%f\n",a,x);

print("%7.2f,%9.4f\n",x,x);

print("%c,%d",c,c);

print("%s,%10s\n","computer","computer");}

四、编写程序题

1.编写用scanf语句输入2个整数并求其积的C程序。

2.编写将b,e,i,j,i,n,g以单个字符赋给变量后显示beijing的C程序。

3.输入1个16进制数,并分别用16进制数和10进制数显示的C程序。

4.使用print()函数编制程序显示下列图形。

a

b b b

c c c c c

5. 用下面的scanf 函数输入数据a=10,b=20,c1='A',c2='a',x =1.5,y=-3.75,

z=67.8, 请问在键盘上如何输入数据 ?

scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);

习题四语句和流程控制

一、选择题

1.在C语言中,逻辑值“真”用什么表示?

A)true B)正数 C)非0整数 D)非0的数

2.若给定条件表达式(m) ? (a++):(a——)则其中表达式m和________等价。

A)(m==0) B)(m==1) C)(m!=0) D)(m!=1)

3.在C语言的if语句中,用作判断的条件表达式为________。

A)算术表达式 B)逻辑表达式 C)关系表达式 D)任意表达式

4.下面哪个表达式满足x为奇数时为真,x为偶数时为假。

A)x%2==0 B)(x/2*2-x)==0 C)!!(x%2) D)!x%2!=0

5.下列说法中正确的是________。

A)在switch语句中一定要使用break语句

B)在switch语句中不一定要使用break语句

C)break语句是switch语句的一部分

D)break只能用于switch语句中

6.C语言中对于嵌套if语句规定else总是与什么配对?

A)第1个if B)与之前最近的if

C)缩进位值相同的if D)与之前最近的不带else的if语句

7.下列判断char类型变量c1是为数字的最简单且正确的表达式是________。

A)′0′<=c1<=′9′ B)(cl>=′0′)&&(cl<=′9′)

C)(cl>=O)&&(cl<=9) D)( ′0′<=c1)&&( ′9′>=c1)

8.下列if语句中,不正确的是________。

A)if(x>y);

B)if(x==y) x+=y;

C)if(x!=y) scanf(″%d″,&x) else x=1

D)if(x

9.关于下面for循环语句描述正确的是:

for(i=0,k=一1;k=1;i十十,k十十) printf(″*″);

A)循环结束条件不合法 B)循环是一个无限循环

C)循环体执行2次 D)循环体执行1次

10.下面的for循环最多可执行________________次。

for(x=0,y=0;(y!=99)&&(x<4);x++);

A)4次 B)5次 C)99次 D)0次

11.设i,x都是int类型,则下面的for循环体可执行多少次?

for(i=0,x=0; i<=9&&x!=876; i++ ) printf(″*″);

A)9次 B)876次 C)10次 D)无限循环

12.下列哪个循环不是无限循环。

A)for(y=0;x=1;++y); B)for(;;x=0);

C)while(x=1) {x=1;} D)for(y=0,x=1;x>++y;x+=1);

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

A)0 B)1 C)true D)非0

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

A)0 B)1 C)trtle D)非零

15.下列循环体执行多少次?

k=70;

while(k=0)k—=1

A)70次 B)69次 C)无限次 D)0次

16.while(!x)中的(!x)与下式中的________等价。

A)x==0 B)x!=0 C)x==1 D) x!=1

17.若x,y均是int型变量,则执行以下语句后的结果是________ 。

for(x=l;x<5;x+=2)

{for(y=l;y<5;y++)

printf(″%2d″,x*y);

if(y==5)printf (″\n″)

}

A)1 2 3 4 B)2 3 4 5 C)2 3 4 6 9 12 D)2 3 4

3 6 9 12 6 9 12 15 6 9 12

10 15 20

18.若x,y均是int型变量,则执行以下语句后,x,y值是_______。

for(y=1,x=1;y<=50;y++)

{if(x>=l0) break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

A)1,2 B)10,6 C)6,10 D)10,8

二、填空题

1.do-While循环语句的执行过程是先________后________,而While循环的执行过程是先_____后运行________

2.break语句可在或中使用,continue语句只能在中使用。

三、运行程序题

1. 设a=3,b=4,c=5。写出下面逻辑表达式的值。

(1) a+b>c && b==c的值是。

(2) A|| +c && b-c的值是。

(3) !(a>b)&& ! c || 1的值是。

(4) ! (x=a)&& (y=b) && 0 。

(5) ! (a+b)+c-1&&b+c/2 。

2.巳知程序,运行结果是________。

main( )

{ int i;

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

{if(i%2)

printf("#");

else continue;

printf("$");

printf("&\n");

3.已知下列程序,若输入1234,运行结果是。

#include

main( )

{ int c;

while((c=getchar( ))!='\n')

switch(c-'2')

{case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;

printf("\n");

4.有下面的程序,程序的运行结果是。

main()

{ int i, j, k;

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

{ for(j=0;j<=2-i;j++)

printf(" ");

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

printf("*");

printf(“\n”);

}

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

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

printf("" );

for(k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

} }

四、完善程序题

1. 利用公式:

求的近似值,直到最后一项的绝对值小于为止。程

序如下:

#include

main( )

{ int s=1;

float n=1,t=1,pi=0;

while( ① >=le-6)

{ pi=pi+ ② ;

n=n+2;

s= ③ ;

t=s/n;}

pi =pi*4;

pirntf("pi=%f\n",pi);}

2.用键盘输入一段文字,以“*”作为结束标志,请编写一个对行、单词和字符计数的程序。其中,单词为一串不含空格、制表符或换行符的字符串。程序如下:

#include

#define YES 1

#define NO 0

main( )

{ int nl,nw,nc,inword;

char c;

inword=NO;

nl=nw=nc=0;

while((c=getchar( ))! ④ )

{++nc;

if(c= =' '‖c= ='\t'‖c= = ⑤ )

inword=NO ;

else if(inword= =NO)

{inword= ⑥ ;+ +nw;}

nc- -;}

printf("%d\t%d\t%d\n",nl,nw,nc);

}

五、编写程序题

1.有一函数:

y=

编程序,输入x,输出y值。

2.输入三边a,b,c,判断是否能构成三角形,如能构成三角形,要用海伦公式计算其面积。

注:(1)海伦公式:s=其中:p=(a十b十c)/2

(2)构成三角形的条件是:a+b>c,且︱a—b︱

3.试编写运输公司对用户计算运费程序。距离(S)越远,每公里运费越低。标准如下: S<250km 没有折扣

250≤S<500 2%折扣

500≤S<1000 5%折扣

1000≤S<2000 8%折扣

2000≤S<3000 10%折扣

3000≤S 15%折扣

设每公里每吨货物的基本运费为P(price的缩写),货物重为W(Weight的缩写),距离为S,折扣为d (discount的缩写),则总运费f(freight的缩写)计算公式为:

f=p*w*s*(1-d)

4.求解满足条件1+2+3……n≥1000的最小n及和s的值。

5.利用循环语句求(直到第100项的和)

6.输入一个整数,将其数值按小于10,10~99,100~999和1000以上分类并显示。

例如:输入732时,显示732 is 100 to 999。

7.编写求S=。

8.求e x的台劳级数展开式的前N项之和。

(-∞

9.找出1—100之间的全部“同构数”。所谓“同构数”是指一个数,它出现在它的平方数的右端。如:6的平方是36,6出现在36的右端,6就是同构数。

10.利用公式求cosx的近似值(精度为10-6):

cosx=

11.打印输出以下图案:

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

12. 编写一个程序,模拟选举过程,共有n个人参加选举,候选人有4位,分别用字

符A,B,C,D表示,选某位候选人时,直接键人其代号,若键入除A,B,C,D以外其他字符时为无效票。选举结束后按得票多少的顺序输出候选人代号所得票敷。

13.打印输出由1,2,3,4四个数字组成的4位敷,并统计它的个数(允许该4位数中有相同的数字,例如:1111,1122,1212等)。

14. 打印出来所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的

立方和等于该数本身,例如153就是一个“水仙花数”,因为153=13+53+33;

15.求S=a + aa + aaa + …… + aa…a(n个a )之值,其中a是一个数字。例如2+22+222+2222+22222(5个2),n由键盘输入。

习题五数组

一、选择题

1.C语言中,数组元素下标的下限是。

A)1 B)0 C)视说明语句而定 D)无固定下限

2.说明语句int a[10]包括了个数组元素。

A)10 B)11 C)l D)不确定

3.有语句char strl[l0], str2[10]={"books"};

则将字符串books赋给数组strl的正确语句是。

A)strl={"Books"}; B)strcpy(strl,str2);

C)strl=str2; D)strcpy(str2,strl);

4.定义如下变量和数组,则下面语句的输出结果是。

int i;int x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3 i++) printf(″%d″,x[i][2-i]);

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9

5.若有以下程序段执行后,输出结果是_________。

char str[ ]= ″ab\n\012\\\n″; printf(″%d″,strlen(str));

A)3 B)4 C)6 D)12

6.下列4种数组定义,合法的数组定义是_________。

A)int a[ ]= ″string″ B)int a[5]={0,1,2,3,4,5}

C)char a=″string″ D)char a[ ]={0,1,2,3,4,5}

7.不能把字符串:china! 赋给数组b的语句是_________·

A)char b[0]={′c′,′h′,′i′,′n′,′a′,′! ′};

B)char b[l0];b=″china!″

C)char b[10]; strcpy(b,″china! ″)

D)char b[l0]= ″china! ″

8.下面程序段执行后,s的值是________

static char ch[ ]= ″600″;

int a,s=0;

for(a=0;ch[a]>= ′0′&&ch[a]<= ′9′;a++)

s=10*s+ch[a]-′0′

A)600 B)6 C)0 D)出错

9.有如下程序,其运行结果是_________。

main( )

{ int n[3], i,j,k;

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

n[i]=0

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf(″%d/n″,n[k]);

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

二. 填空题

1. 若定义char s[20];则表示此数组有个元素,其下标从开始,最大

为。

2.数组在内存中占一片连续的存储区,由代表它的首地址。

3. 若有以下程序段 char str[]="xy \n \012 \ \ \ n"; printf("%d",strlen(str)),

执行后的输出结果是。

三、运行程序题

1.已知下列程序,其运行结果是_________。

main()

{ int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

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

printf(″%d″,x[i][2-i]);

}

2.程序的运行结果是__________。

main()

{ static char a[ ]={ ′*′,'*′,′*′, ′*′,′*′};

int i,j,k;

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

{printf(″\n″):

for(j=0;j

for(k=0;k<5;k++)printf(″%c,a[k]);

}

}

3.程序运行结果_________。

main( )

{ static int s[ ][3]:{9.7,5,3,1,2,4,6,8};

int i,j,s1=0,s2=0;

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

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

{ if(i= =j) s1=s1+a[i][j];

if(i+j= =2 ) s2=s2+a[i][j];

}

printf(″%d\n%d\n″,s1,s2)

}

4.说明下列程序的功能

main()

{ int i,j;

float a[3][3],b[3][3],x;

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

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

{scanf(″%f″,&x); a[i][j]=x;}

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

for(j=0;j<3;j++) b[j][i]=a[i][j];

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

{ printf(″\n″);

for(j=0;j<3;j++)printf(″%f″,b[i][j]);

}

}

四、完善程序题

1.下面函数的功能是将一个字符串str的内容颠倒过来。

#include

main( )

{ int str[80];

int i,j,___⑴ ;

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

scanf(″%c″,&str[i]);

for(i=0, j=strlen(str) ⑵ ; i

{k=str[i];str[j]=str[i];str[i]=k;}

}

2.输入一组实数给一个3x3的矩阵,然后求出此矩阵两条对角线元素值的和。

main( )

{ float[3][3],sum=0;

int i,j;

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

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

scanf(″%f″,___⑴ ;

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

sum=sum+ ⑵

printf(″%f″,sum);

}

3.对输人中每一个数字出现的次数进行计数。

#include

main()

{int i,ch,___⑴ ;

for(i=0;i

while((ch=getchar())!=EOF)

if(ch>′0′&& ch<=′9′)

(2);

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

printf("数字%d的出现次数是:%d\n",n, ndigit[i]);

五、编写程序题

1.将字符数组str2中的全部字符拷贝到字符数组strl中。采用strcpy函数。拷贝时,

'\0'也要拷贝进去,'\0'后面的字符不拷贝。

2.将输入的n个整数从小到大排序输出,再求出此n个整数中所有奇数和及所有素数的个数。

3.统计从键盘输入的字符中每个数字、字母、空格及换行符的个数。

4.打印下面杨辉三角形。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 10 6 1

5.输入10个学生的分数,并将平均分数算出,打印低于平均分数的人。

6.编程实现二维数组(n×n)转置(即行列互换)。

7.求两个矩阵的乘积,并打印输出。

设a矩阵为3行4列,b矩阵为4行3列,根据矩阵乘法的规则,其乘积为一个3行3列的c矩阵。

8.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最少,也可能没有鞍点。

9.打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,:方阵为:

8 1 6

3 5 7

4 9 2

要求打印输出由1~n2的自然数构成的魔方阵。

10.任意输入20个整数,统计其正元素、零元素及负元素的个数,井计算正元素及负元素之和,然把统计和计算结果打印输出。

11.编制一个函数,对标准输入文件(终端键盘)中所包含的每个字母(不分大小写)出现的次数进行统计。函数中设计一个一维数组(长度为27),前26个下标变量顺序存放A~Z(a~x)的出现次数,最后一个下标变量存放非字母的字符个数。

习题六函数

一、选择题

1.以下描述中,不正确的是___________。

A)调用函数时,实参可以是表达式

B)调用函效时,将为形参分配内存单元

C)调用函数时,实参与形参的原型必须一致

D)调用函数时,实参与形参可以共用内存单元

2.C浯言中函数能否嵌套调用和递归调用

A)二者均不可 B)前者可,后者不可

C)前者不可,后者可 D)二者均可

3.以下正确的叙述是___________。

A)C语言的主函数是无参函数

B)C语言的主函数最多允许有1个参数

C)C语言的主函数最多允许有2个参数

D)C语言的主函数可以有2个以上参数

4.C程序中若函数类型未加显式说明,则函数的隐含类型为___________类型。

A)void B)Int C)char D)double

5.以下函数调用中,有___________个实参。

expd((a1,a2,a3),(a4,a5),a7,a8))

A)4 B)3 C)8 D)5

6.若x为int型变量,则以下函数acf返回值为_______

acf(x)

{ printf(″%d\n″,x);}

A)void类型 B)int类型 C)无法确定 D)无返回值

7.对于C程序的函数,下列叙述中正确的是___________。

A)函数的定义不能嵌套,但函数词用可以嵌套

B)函数的定义可嵌套,但函数的调用不能嵌套

C)函数的定义和调用均不能嵌套

D)函数的定义和调用均可嵌套

8.有如下程序,运行结果为________

int d=1;

fun(int p)

{ int d=5;

d+=p++;

printf (″%d″,d);

}

main()

{int a=3;

fun(a);

d+=a++;

printf(″%d\n″,d) }

A)84 B)96 C)94 D)85

9.有如下程序,运行结果为_________

#include

main()

{ int n=4,x=2,s;

s=fun(x,n);

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

}

fun(int x,int n)

{ if(n= =1)return(x);

else return(x*fun(x,n-1));

A)s=12 B)s=16 C)s=20 D)s=24

二、运行程序题

1.写出程序的运行结果_________

unsigned fun(unsigned mum)

{ unsigned k=1;

do{k*=num%10;mum/=10;}

while(num);

return(k) ;

}

main( )

{ unsigned n=26;

printf(″%d\n″,fun(n));

}

2.写出程序的运行结果________

#include

Long fun(int n);

{ long s;

if(n= =1‖n= =2) s=2;

else s=n+fun(n-1);

return s;

}

void main()

{ print(″\n%ld″,fun(4)); }

3.写出程序的运行结果_________

#include

main( )

{ int k=4,m=3,p;

p=func(k,m);

printf(″d%″,p);

p=func(k,m);

printf(″d%\n″,p)

}

func(a,b);

int a,b

{ static int m=0,i=2;

i+=m+1

m=i+a+b

return(m);

}

4.写出程序的运行结果_______

#include

int fun(int x,int y);

void main()

{ int x=6,y=7,z=8;

printf(″%d″,fun((x- -,y+ +,x+y),z- -));

}

int fun(int x,int y)

{ int z;

z=x+y;

return z;

}

三、修改下面程序

1.有如下程序:

main( )

{int x=7;

square(x);

printf("\n the square is %d"x);

}

square(x)

int x;

{return(x*x);}

2.有如下程序:

main( )

{float x,y;

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

prinft("%f",mul(x,y));

}

float mul(float a,b)

{return(a*b);}

3.输入两个整数,求它们的差绝对值.

#include

main( )

{ int x,y,z;

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

z=fabs(x—y);

printf("%d- -%d的绝对值为%d",x,y,z);

}

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

itoa(n,s)

int n;

{static i=0,j=0;

int c;

if(n!=0)

{j++;

C语言经典例题和答案

一、求一个任意边长的矩形面积。 #include void main() {int w,h,sum; scanf("%d%d",&w,&h); sum=w*h; printf("area=%d\n",sum); } 二、求一个任意半径的圆的面积及周长。 #define PI 3.14159 #include void main() {float r,area,c; scanf("%f",&r); area=PI*r*r; c=2*PI*r; printf("area=%f\ncircle=%f\n",area,c); } 三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。 ##include void main() { int w,y,z,r; w=5; y=4; z=2; r=w*y/z; printf("%5d",r); } 一、从键盘上输入三个数,求出其中的最大值,并输出。 #include void main() {int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a; if(max

#include #define PI 3.14159 #include void main() {float a,b,sum; a=30*PI/180; b=60*PI/180; sum=sin(a)+sin(b)+cos(a)+cos(60); printf("total=%f\n",sum); } 三、比较两个数的大小。如果x大于y,则输出:x>y,否则输出:x void main() {int x,y; scanf("%d,%d",&x,&y); if(x>y) printf("x>y\n"); else printf("x void main() {int a,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a>b) { t=b; b=a; a=t; } if(a>c) {t=a; a=c; c=t; } if(b>c) {t=b;b=c;c=t;} printf("%3d%3d%3d\n",a,b,c); }. 二、求自然数1~10之和。。 #include void main()

C语言图形输出习题

C语言图形输出习题 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

【】输入n值,输出如图所示矩形。 【】输入n值,输出如图所示平行四边形。 【】输入n值,输出如图所示高为n的等腰三角形。 【】输入n值,输出如图所示高为n的等腰三角形。 【】输入n值,输出如图所示高和上底均为n的等腰梯形。 【】输入n值,输出如图所示高和上底均为n的等腰空心梯形。 【】输入n值,输出如图所示边长为n的空心正六边型。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。(例为n=6时)

【】编写程序,输出如图所示sin(x)函数0到2π的图形。 【】编写程序,在屏幕上输出一个由*号围成的空心圆。 【】编写程序,在屏幕上绘制如图余弦曲线和直线。若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。 【】编写程序,输出如图所示高度为n的图形。 【】编写程序,输出如图所示高度为n的图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。 12345 6 7 8 9 图=5时的螺旋方阵 【】输入n值,输出如图所示回型方阵。

【】输出如图所示的数字金字塔 【】输入n值,输出如图所示图形。 【】输入顶行字符和图形的高,输出如图所示图形。 【】输入首字符和高后,输出如图所示回型方阵。 AAAAA ABBBA ABCBA ABBBA AAAAA 图首字符为'A'、高为5的方阵 【】输入中心字符和高后,输出如图所示回型方阵。XXXXX XYYYX XYZYX XYYYY XXXXX 图中心字符为'Z'、高为5的方阵 【】编写程序,输出如图所示上三角形式的乘法九九表。【】编写程序,输出如图所示下三角乘法九九表。 【】分析:打印此图形用两重循环实现。

C语言经典编程实例100题+答案

C语言程序实例100个(一) 【程序1】?题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字得三位数?都就是多少? 1、程序分析:可填在百位、十位、个位得数字都就是1、 2、 3、4。组成所有得排列后再去掉不满足条件得排列。 2、程序源代码:?main() {?inti,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 inti;?int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0、1;bonus2=bonus1+100000*0、75;?bonus4=bonus2+200000*0、5;?bonu s6=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; else if(i<=1000000) bonus=bonus6+(i-600000)*0、015;?else?bonus=bonus10+(i-1000000)*0、01;?printf("bonus=%d",bonus); } ?==============================================================?【程序3】?题目:一个整数,它加上100后就是一个完全平方数,再加上168又就是一个完全平方数,请问该数就是多少? 1、程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后得结果满足如下条件,即就是结果。请瞧具体分析:? 2、程序源代码: #i nclude "math、h"?main()?{?long inti,x,y,z;?for (i=1;i<100000;i++)?{ x=sqrt(i+100); /*x为加上100后开方后得结果*/ y=sqrt(i+268); /*y为再加上168后开方后得结果*/ if(x*x==i+100&&y*y==i+268)/*如果一个数得平方根得平方等于该数,这说明此数就是完全平方数*/ printf("\n%ld\n",i);?}?}

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语言编程练习题绝对经典!

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人 解方程组 编写程序,采用穷举法求出结果。 编写程序,根据以下公式求e 的值。要求用两种方法计算: 1) for 循环,计算前50项 2)while 循环,直至最后一项的值小于10-4 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上 只剩下最后一个桃。问第一天摘了几个桃。 编程打印九九乘法表 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。 2) 使用数组来进行编程。 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 = 40 余数为7 40/8 = 5 余数为0 于是八进制数为507(第一位5是最后的商)) 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13) 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为 奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。 11111111!2!3!4!5!!e n ≈++++++??????+

经典练习C语言编程的题目及标准答案整理

1.逆序输出正三位数 #include intmain() { intinput,output=0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10;input/= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { intamount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); ?printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); ? return0; } 3.求平均数 #include int main() { int a,b; scanf("%d%d",&a,&b);

double c=(a+b)/2.0; /*scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return0; } 4.写出程序的输出: int i=1; switch(i/3){ case0:printf("zero"); case1:printf("one"); case2:printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

(完整版)C语言100个经典题目

C语言程序设计习题 授课对象:信息奥赛辅导成员 授课时间: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? __________________________________________________________________ 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…. ___________________________________________________________________ 程序源代码: main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf(“%12ld %12ld”,f1,f2); if(i%2==0) printf(“\n”);/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,you try! 题目:判断101-200之间有多少个素数,并输出所有素数。 __________________________________________________________________ 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ___________________________________________________________________ 程序源代码: #include “math.h” main() { int m,i,k,h=0,leap=1;

最新版c语言经典习题100例(最全面)

C 语言习题100 例(最新整理版) 习题目录:(按住Ctrl 点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目输入三个整数x,y,z请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在C环境中运行,看一看,VeryBeautifuI! (9) 【程序8】 (9) 题目:输出9*9 口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200 之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1 的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 。 (12) 【程序15】 (13) 题目利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用 C 表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n ,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。14【程序18】 (14)

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;

C语言图形输出习题

【4.4】输入n值,输出如图所示矩形。 【4.5】输入n值,输出如图所示平行四边形。 【4.6】输入n值,输出如图所示高为n的等腰三角形。 【4.7】输入n值,输出如图所示高为n的等腰三角形。 【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。 【4.10】输入n值,输出如图所示边长为n的空心正六边型。 【4.11】输入n值,输出如图所示图形。 【4.12】输入n值,输出如图所示图形。 【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。 【4.15】输入n值,输出如图所示图形。 【4.16】输入n值,输出如图所示图形。(例为n=6时) 【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。 【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.20】编写程序,输出如图所示高度为n的图形。 【4.21】编写程序,输出如图所示高度为n的图形。 【4.22】输入n值,输出如图所示图形。

【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 图4.19 n=5时的螺旋方阵 【4.24】输入n值,输出如图所示回型方阵。 【4.25】输出如图所示的数字金字塔

C语言练习习题(带详解答案)

欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area);

printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;

c语言-经典常用-习题

c语言-经典常用-习题

1.输入一个字符串,将其按给定的长度n格式化并输出,若n=0,则输出原字符串 输入 输入一个字符串 输出 格式化并输出 样例输入 asdfasdf 3 样例输出 asd fas df 提示 #include #include int main()

{ int n,m,i,j; char a[10000]; gets(a); scanf("%d",&m); n=strlen(a); if(m==0) puts(a); else { for(i = 0; i < n; i += m) { if(a[i] == '\0') return 0; for(j = 0; j < m; ++ j) { if(a[i + j] == '\0') { printf("\n"); return 0; } printf("%c", a[i + j]);

} printf("\n"); } } return 0; } 2.题目描述 输入一个长度不超过100 的字符串,删除串中的重复字符。 输入 输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。 输出 删除重复字符后的字符串。例如:abced。 样例输入 saas

样例输出 sa 提示 #include int main() { char a[100]; int i,j,m; scanf("%s",a); for(i=0;a[i]!=0;i++) for(j=i+1;a[j]!=0;j++) if(a[i]==a[j]) { for(m=j;a[m]!=0;m++) { a[m]=a[m+1]; } j--;

C语言图形输出习题

C语言图形输出习题 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

【4.4】输入n值,输出如图所示矩形。 【4.5】输入n值,输出如图所示平行四边形。 【4.6】输入n值,输出如图所示高为n的等腰三角形。 【4.7】输入n值,输出如图所示高为n的等腰三角形。 【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。 【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。 【4.10】输入n值,输出如图所示边长为n的空心正六边型。 【4.11】输入n值,输出如图所示图形。 【4.12】输入n值,输出如图所示图形。 【4.13】输入n值,输出如图所示图形。 【4.14】输入n值,输出如图所示图形。 【4.15】输入n值,输出如图所示图形。 【4.16】输入n值,输出如图所示图形。(例为n=6时) 【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。若屏幕的横向为x 轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。 【4.20】编写程序,输出如图所示高度为n的图形。 【4.21】编写程序,输出如图所示高度为n的图形。 【4.22】输入n值,输出如图所示图形。 【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。 12345 161718196 152425207 142322218 131211109 图4.19n=5时的螺旋方阵 【4.24】输入n值,输出如图所示回型方阵。 【4.25】输出如图所示的数字金字塔 【4.26】输入n值,输出如图所示图形。 【4.27】输入顶行字符和图形的高,输出如图所示图形。 【4.28】输入首字符和高后,输出如图所示回型方阵。 AAAAA

二级C语言100道经典选择题与答案

【1.1】以下不正确的C语言标识符是。 A) B) 1_2 C) 1 D) 【1.2】以下是正确的C语言标识符是。 A) B) _123 C) D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 A) B) i\C) D) _3d> ??? $ ??? 3 【1.4】下面各选项组中,均是C语言关键字的组是。 A) ,, B) ,, C) ,, D) ,, 【1.5】下列不属于C语言关键字的是。 A) B) C) D) 【1.6】C语言程序从()函数开始执行,所以这个函数要写在。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是 A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中

C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的类型的常数是。 A) 32768 B) 0 C) 037 D) 0 【1.9】执行语句 (""1);屏幕显示。 A) -1 B) 1 C) D) 【1.10】已知 32768;执行语句("");屏幕显示。 A) -1 B) -32768 C) 1 D) 32768 【1.11】已知 65539;执行语句("");屏幕显示。 A) 65539 B) -3 C) 3 D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型()数据在内存中的存储形式是。 A) 原码 B) 补码 C) 反码 D) 码

C语言经典程序100题(完整版)

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。#include "stdio.h" #include "conio.h" 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); } getch(); } ============================================================== 【程序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,求应发放奖金总数?程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 #include "stdio.h" #include "conio.h" 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; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); getch(); } ============================================================== 【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: #include "math.h" #include "stdio.h" #include "conio.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); /*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/

C语言典型例题——关于图形输出

在C语言学习中我们会遇到各种输出图形的题目,下面我们就来看一些这种题目。 一、编写程序输出下图所示的图形。 (1)(2)(3)(11) 下面我们分别以i、j、k分别表示行数,空格数,星号数。 (1)i j k (2) i j k (3) i j k 1 0 1 1 6 1 1 0 9 2 0 2 2 5 2 2 1 7 3 0 3 3 4 3 3 2 5 4 0 4 4 3 4 4 3 3 5 0 5 5 2 5 5 4 1 6 0 6 6 1 6 j<=i-1 7 0 7 7 0 7 k<=11-2*i K<=i j<=7-i K<=i 发现行数、空格、星号有如上关系,用for循环便可实现。

(1) #include"stdio.h" void main() {int i,j; for(i=1;i<=7;i++) {for(j=1;j<=i;j++) printf("*"); printf("\n"); } } (2) #include"stdio.h" void main() {int i,j,k; for(i=1;i<=7;i++) {for(j=1;j<=7-i;j++) printf(" "); for(k=1;k<=i;k++) printf("*"); printf("\n"); } } (3) #include"stdio.h" void main()

{int i,j,k; for(i=1;i<=6;i++) {for(j=1;j<=i-1;j++) printf(" "); for(k=1;k<=11-2*i;k++) printf("*"); printf("\n"); } } 然后我们在进行扩展。编写程序输出如下图型。 (4)(5)(6)所编程序如下: (4) #include"stdio.h" void main() {int i,j,k; for(i=1;i<=7;i++) {for(j=1;j<=8-i;j++) printf("*"); printf("\n");

最新C语言经典例题100道汇总

C语言经典例题100 道

经典C源程序100例 题目:有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; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); } ============================================================== 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++)

C语言经典编程练习题和答案详解入门必备

【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: #include “stdio.h” #include “conio.h” main() { inti,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); } getch(); } 【程序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.程序源代码: #include “stdio.h” #include “conio.h” main() { longinti; int bonus1,bonus2,bonus4,bonus6,bonus10, bonus; sc anf(“%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; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01;

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