您的当前位置:首页正文

c语言常见编程与习题

来源:九壹网


C语言程序设计实例设置段落格式(...设置段落格式(...

main() { int i,j;

for(i=1;i<=9;i++) { for(j=1;j<=9;j++) printf(\"%4d\运行结果:

1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 #include main() { int i,j;

for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf(\"%d*%d=%-4d\运行结果: 1*1=1 1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

1)编写程序:求300-360之间素数的个

数。 #include #include main() { int m,n,i,k; n=0;

for(m=301;m<360;m+=2) { (int)sqrt(m); i=2; while(m%i!=0&&i<=k) i++; if(i==k+1) n=n+1; } printf(\"The prime number is %d.\运行结果:

The prime number is 10.

2)编写程序:统计300-360之间和600-680之间所有素数的个数。 #include #include main() { int m,n,i,k; n=0;

for(m=301;m<680;m+=2) { if(m>360&&m<600) continue; (int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i==k+1) n=n+1; } printf(\"The prime number is %d.\运行结果:

The prime number is 24.

1)求15!。

#include main() { int n; long t=1;

for(n=2;n<=15;n++) { t=t*n; }

k=

k=

printf(\"%ld\\n\

运行结果:2004310016

2)计算:1!+3!+5!+···+99!。 #include main() { int n;

long t=1,sum=0; for(n=1;n<100;n++) { t=t*n; if(n%2==0) continue; sum= printf(\"sum=%ld\\n\运行结果: sum=80303791

3)计算:1=+1/2+1/3+1/4+···+1/10. #include main() { int n;float s; s=1.0;

for(n=10;n>1;n--) s=s+(float)1/n; printf(\"%6.4f\\n\ }

运行结果:2.9290

4)有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13···求出这个数列的前30项之和。 #include main() { int i=1;

float t,x=1,y=2,m,sum=0;; while(i<=30) { m=y/x; sum=sum+m; t=y; y=y+x; x= printf(\"the result is %.2f\\n\运行结果:the result is 48.84 5)统计1000!的末尾有多少个0. 提示:统计1000!中5的个数。 #include main() { int i,k,n=0;

for(i=5;i<=1000;i=i+5) { n++; k=i/5; while(k%5==0) { n++; k=k/5; } } printf(\"n=%d\\n\运行结果:249

1)编写程序:从键盘输入一个二进制数,输出其对应的十进制数。 #include main() { long sum=0,x,y,r,t=1;

printf(\"input the x:\"); scanf(\"%ld\printf(\"%ld==%d\\n\运行结果:

input the x:111010 111010==58

11、下列描述,正确的是___B__ 。 A、表达式3.91%5是合法的

B、用b=89作为while循环的条件是合法的 C、逗号表达式是没有值和类型的

D、字符型变量和int型变量的操作完全不同 12、阅读以下程序: main() {int x; scanf(\"%d\

if(x--<5) printf(\"%d\

程序运行后,如果从键盘上输人5,则输出结果是__B__ 。 A、3 B、 4 C、 5 D、 6 13、下列程序的运行结果是___C__。 #include ”stdio.h” main() { int k; k=3; switch(k)

{ case 1: printf(”%d\\n”, k++); case 2: printf(”%d\\n”, k++); case 3: printf(”%d\\n”, k+ default: printf(”Full!\\n”); } }

A、3 B、4 C、3 D、

4 4 4

14、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、

d=8、 m=2、n=1,则逻辑表达式(m==aD、交换变量x和变量y的值

16、以下程序的输出结果是 ___A__ 。 main() {int a, b;

for(a=1, b=1; a<=100; a++) {if(b>=10) break; if (b%3==1) { b+=3; continue; } } printf(\"%d\\n\

A、4 B、6 C、5 D、101 17、执行以下程序后输出的结果是___D__。 main() { int y=10; do {y--;} while(--y); printf(\"%d\\n\

A、-1 B、1 C、8 D、0 18、执行以下程序后输出的结果是___B__。 main()

{int i, j, w=0; for(i=4; i; i--)

for(j=1;j<=2;j++) w=w+i*j; w=i*j; printf(\"%d\\n\

A、4 B、0 C、1 D、30 19、以下程序运行后,输出结果是__C__。 main() {

int n[5]={3,3,3},i,k=2; for(i=0;ifor(i=0;i<3;i++) printf(\"%d\\n\

}

A、 7 B、 7 C、 7 D、 7 8 9 10 7 9设C程序如

下: #define ABC(x) x*x #include\"stdio.h\" main() {int a=3,b; b=ABC(a+1); printf(\"b=%d\

上述程序运行输出的结果是__D_ 。

A、b=4 B、b=a+1 C、b=16 D、b=7 22、以下程序的输出结果是__B__。 main() {int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i;

printf(\"%d %d %d\

A、1 6 9 B、9 4 1 C、9 6 1 D、3 5 7 23、若定义:float x=3.14159,*p=&x;

则printf(\"%f\\n\;的输出结果为__C__ 。

A、无确定值 B、x的地址 C、3.14159 D、4.14159 24、以下程序的输出结果是___B__ main()

{char b[]=\"Language\"; char *p=b; printf(\"%c \ printf(\"%c\\n\

A、2 7 B、n e C、a g D、n u 25、下列程序的输出结果是___A__。 #include \"stdio.h\" main() {

int a[]={1,2,3,4,5,6,7,8,9,0}, i, s, *p; p=a;s=0; for(i=0;i<=9;i++)

s+=*p++; printf(\"%d\\n\

A、45 B、44 C、0 D、9 二、判断题(每小题1分,共10分)

1.语句int *point;中的point是指针变量名。( T ) 2.主函数和其它函数之间可以相互调用。( F )

3.puts( )和gets( )函数只能输入或输出一个字符。( F ) 4. 可以对字符型数组元素进行整体输入、输出。( T )

5.do-while语句构成的循环不能用其他语句构成的循环来代替。

( F ) 6.在一个函数内的复合语句中定义的变量可以在本函数范围内有效。(F ) 7.函数必须有返回值,否则不能使用函数。( F ) 8.for(;;);语句相当于while(1);语句。( T ) 9.C程序的执行总是从第一个定义的函数开始。( F )

10.C语言中的关键字专门用作语言的特定成分,而不能作为一般标识符使用。( T )

三、程序填空题(每空2分,共10分)

1、下面程序完成判断某一个数m是否为素数,如果是则输

出\"m is a prime!\",否则就输出\"m is not a prime!\",请选择填空。 main() { int i, m;

scanf(\"m=%d\ { printf(\"%d is not a prime!\\n\ if(i==m) printf(\"%d is a prime!\\n\

(1)、 A、break B、continue C、break; D、continue; (2)、 A、break B、break; C、continue D、continue;

2、以下程序的功能是:求出用数字0至9组成没有重复数字且是13倍数的三位数的个数,请选择填空。 #include void main() { int i, j, k, w, count = 0;

for( (3) ; i<=9; i++) for(j=0;j<=9; j++) for(k=0; k<=9;k++) if( (4) )

{ w = i*100+j*10+k; if( (5) ) count++; } printf(\"\\n count=%d\\n\

(3)、 A、i=0 B、i=1 C、i=9 D、i=-1 (4)、 A、i!=j B、i!=j ||j!=k

C、i!=j&& j!=k D、i!=j&& j!=k && k!=i (5)、 A、w%13=0 B、w/13=0 C、w%13==0 D、w/13==0 四、编程题(第1小题12分,第2小题18分,共30分)

1、从键盘输入一个4位数的正整数n,将该数反序输出。例如,若输入的是 1357,则输出的是7531。

要求:1)利用VC++编译系统进行调试、运行 2)对输入的正整数n的合法性进行检查

3)将源程序以“编程题1.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分

2、已知一组字符串a[27]=\"jjyyzzabcdefgJJYYZZABCDEFG\"; 请编一程序,将其 中的小写字母换成其前一个字母,即z换成y,y换成x,...,b换成a,若是a则换成z。然后对数组a[27]从小到大排序,并输出排序后的字符串。 要求:1)利用VC++编译系统进行调试、运行

2)先输出原字符串(即未做任何改变的字符串),最后输出排序后 的字符串

3)将源程序以“编程题2.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分

因篇幅问题不能全部显示,请点此查看更多更全内容