C语言程序阅读题.doc
C语言程序设计复习题(一)1的阅读程序部分
} case 2: printf("third\n"); } } 结果:first third 4.下列程序运行结果是【 -1 】 。 #include<stdio.h> main( ) { int n=4; do n--; while (n); printf("%d\n",--n); } 5.下列程序运行结果是【 】 。 #include<stdio.h> dec( ) { static int x=5; x--; printf("%d",x); } main( ) { int k; for(k=0;k<3;k++) dec( ); } 结果:4 3 2 五.程序填空(请依题意,将程序中括号部分补充完整。每题 3 分,共 15 分) 1. 一个正整数与 3 的和是 5 的倍数,与 3 的差是 6 的倍数,编写一个程序求符合条件的最 小数。 #include <stdio.h> main() { int n; n=1; while (1) { n=n+1; if 【 (1) (n+3)%5==0&&(n-3)%6==0 】break; } printf("n=%d",n); } 2.将两个字符串合并成一个字符串。 #include <stdio.h> main() { char s1[20],s2[20],s3[40]; int i,j; printf("String1:"); gets(s1); printf("String2:》复习题(二)
一.单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答 案的题号,填入题中的括号内。多选不给分。每题 1 分,共 20 分) 1.在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式 中包含有 int、 long、 unsigned、 char 类型的变量和数据, 则表达式最后的运算结果是 【 ④ 】 类型数据。 ① int ② char ③ unsigned ④ long 2.若 int 型数据占 2 个字节,则以下语句的输出为 【 ④ 】 。 int k=-1; printf(“%d,%u\n”,k,k); ① -1,-1 ② -1,32767 ③ -1,32768 ④ -1,65535 3.设 x 和 y 均 为 int 型 变 量 , 则 执 行 以 下 语 句 后 的 输 出 为 【 ① 】 。 x=1 5; y=5 ; pri ntf( “ %d\n ” ,x%= (y%= 2)); ① 0 ② 1 ③ 6 ④ 12 4.若 x 为 uns igned in t 型 变 量 , 则 执 行 以 下 语 句 后 的 x 值 为 【 ④ 】 。 x=6 5535; pri ntf( “ %d\n ” ,x); ① 65535 ② 1 ③ 无定值 ④ -1 5 . 判断 char 型变量 c1 是否为小写字母的最简单且正确的表达式为【 ④ 】 。 ① ’a’<=c1<=’z’ ② (c1>=a)&&(c1<=z) ③ (‘a’<=c1)||(‘z’>=c1) ④ (c1>=’a’)&&(c1<=’z’) 6 . 以下不正确的 if 语句是【 ③ 】 。 ① if (x>y); ② if (x= =y) x+=y; ③ if (x!=y)scanf(“%d”,&x) else scanf(“%d”,&y); ④ if (x<y) {x++;y++;} 7 . C 语言对嵌套 if 语句的规定是:else 总是与【 ④ 】 配 对 。 ① 其 之 前 最 近 的 if ② 第 一 个 if ③ 缩 进 位 置 相 同 的 if ④ 其 之 前 最 近 且 不 带 else 的 if 8 . 设有说明语句:int a=2,b=7,c=5;则执行以下语句后,输出为【 ② 】 。 switch(a>0) { case 1: switch(b<0) { case 1: prin tf(“@”); break; case 2: p rintf(“!”); b reak; } case 0: switch(c==5) { case 0: prin tf(“*”); break; case 1 : p rintf(“#”); b reak; default:printf(“$”); break; } defau lt: p rin tf(“&”); } ① @#& ② #& ③ *& ④ $& 9 . 若有说明语句:int w=2,x=3,y=3,z=4;则表达式 w>x?w:z>y?z:x 的值是 【 ① 】 。 ① 4 ② 3 ③ 2 ④ 1 10.下面有关 for 循环的正确描述是【 ④ 】 。 ① for 循环只能用于循环次数已经确定的情况 ② for 循环是先执行循环体语句,后判定表达式
C语言程序设计阅读程序题库及答案
阅读程序题【2.1】以下程序的输出结果是。
main(D ) { float a;a=1/0;printf("%g",a);}A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0【2.2】下面程序的输出结果是B____。
#include <stdio.h>main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}A) 10,20 B) 20,10 C) 10,10 D) 20,20【2.3】以下程序的输出结果是___B_。
main(){ unsigned int n;int i=-521;n=i;printf("n=%u\n",n);}//变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。
A) n=-521 B) n=521 C) n=65015 D) n=3【2.4】以下程序的输出结果是。
main(D ){ int x=10, y=10;printf("%d %d\n", x――, ――y);}A) 10 10 B) 9 9 C) 9 10 D) 10 9【2.5】以下程序的输出结果是___B。
main(){ int n=1;printf("%d %d %d\n",n,n++,n--);} // C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1【2.6】以下程序的输出结果是____。
main(){ int x=0x02ff,y=0x0ff00;printf("%d\n",(x&y)>>4|0x005f);}A) 127 B) 255 C) 128 D) 1【2.7】以下程序的输出结果是____。
C语言专升本2阅读程序题(3月10日终版)
一、基本输入输出1.#include <stdio.h>main(){printf("a_bc\td\re\t_f\n"); printf("gh_\tij_\b\b__k"); }注:“_”代表一个空格。
运行结果为:e_ _ _ _ _ _ _ _fgh_ _ _ _ _ _ i_ _k3.#include <stdio.h>main(){int z, x=6,y=5;char w=’c’;z=x+y+w;printf("%d,%d,%d",x,y,z); }运行结果为:6,5,110 2.#include <stdio.h>main(){char c1=’a’,c2=’b’,c3=’c’;printf("a%cb%cc%c ",c1,c2,c3); }运行结果为:aabbcc4.#include <stdio.h>main(){ int i=128;float x=234.89;printf(“\n”);printf("%5d,%8.2f\n",i,x); printf("%2d,%4.1f\n",i,x);}运行结果为:128, 234.89128,234.95.#include <stdio.h>void main(void){int x=15,y=5;float f=1234.567f,b=12345;printf("%f %10f %10.2f %.2f%-10.2f\n",f,f,f,f,f); printf("x+y=%d\n",x+y);printf("b=%8f",b);}运行结果为:1234.567000 1234.567000 1234.57 1234.571234.57 x+y=20b=12345.0000006.#include <stdio.h> main( ) { int i=8, j=9;int x, y, z , w; x=i-- ; y=i ;z=++j; w=j;printf(“%d,%d,%d,%d”,x,y,z,w); }运行结果为:8,7,10,108.#include <stdio.h>main(){ int x=10;int y=79;printf("%5d,%5d,%5d",!x,x||y,x&&y); }注:“_”代表一个空格运行结果为:0, 1, 17.#include <stdio.h>main() { int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%d\n”,a,b);}运行结果为:a=2,b=19.#include <stdio.h>main(){ int z, x=2,y=4;char w=’c’;z=x+y;printf("%d,%d,%d,%c",x,y,z,w); }运行结果为:2,4,6,c10.#include <stdio.h>main(){char c='a';printf("%c,%d\n",c,c); }运行结果为:a,97 11.#include <stdio.h>main ( ){ char c1, c2;c1=getchar ( );printf (“%c, %d\n”, c1,c1 ); c2=c1+32;printf (“%c,%d\n”, c2,c2 ); }若敲进A,则运行结果为A,65a,9712.#include <stdio.h> main(){ int z,x=7,y=4; char w=’c’;z=x>y&&y+3<7||w; printf("\n%d,%d,%d",x,y,z); }运行结果为:7,4,113.#include <stdio.h> main(){ int i=10,j=10; int x,y,z,w;x=i--; y=i;z=++j;w=j;printf("%d,%d,%d,%d",x,y,z,w); }运行结果为:10,9,11,1114.#include <stdio.h>main(){int i=8,j=10,m=0,n=0;m+=i++;n- =--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}运行结果为:i=9,j=9,m=8,n=-915.#include <stdio.h>main(){ int x, b0, b1, b2;printf("Please enter an integer x:");scanf("%d", &x);b2 = x / 100;b1 = (x - b2 * 100) / 10;b0 = x % 10;printf("bit0=%d, bit1=%d, bit2=%d\n", b0, b1, b2); }若输入352,运行结果为:bit0=2, bit1=5, bit2=3二、程序控制结构(顺序,分支,循环)1.#include <stdio.h> main(){ int a=1,b=3,c=5; if (c==a+b)printf("yes\n"); elseprintf("no\n");}运行结果为:no 2.#include <stdio.h>main(){ int a=12, b= -34, c=56, min; min=a;if(min>b) min=b;if(min>c) min=c;printf("min=%d", min);}运行结果为:min=-343.#include <stdio.h> main(){ int x=2,y= -1,z=5; if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z); }运行结果为:54.#include <stdio.h>main(){int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c); }运行结果为:a=10 b=30 c=105.#include <stdio.h>main(){ float a,b,c,t;a=3;b=7;c=1;if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c); }运行结果为:1.00,3.00,7.00 6.#include <stdio.h>main(){int a=2;float num=3.12,x;if(num<4)x=2*num*a;printf("result is %f\n",x); }运行结果为:result is 12.4800007.#include<stdio.h> main( ) { char c=’A’;if ((‘0’<=c ) &&(c<=’9’))printf(“YES”);elseprint f(“NO”);}运行结果为:NO8.#include <stdio.h> main ( ) { float c=3.0 , d=4.0; if ( c>d )c=5.0;elseif ( c==d )c=6.0;elsec=7.0;printf ( “%.1f\n”,c ) ; }运行结果为:7.09.#include <stdio.h> main(){ int a=0,b=1,c=0,d=20; if(a)d=d-10;elseif(!b)if(!c)d=15;else d=25;printf("d=%d\n",d);}运行结果为:d=20 10.#include <stdio.h> main(){ int a=2,b=3,c=1; if (a>b)if (a>c)printf (“%d\n”,a); elseprintf (“%d\n”,c); printf (“over!\n”); }运行结果为:over!11.#include <stdio.h>main(){ int m;scanf("%d", &m);if (m >= 0){ if (m%2 == 0)printf("%d is a positive even\n", m);elseprintf("%d is a positive odd\n", m);}else{ if (m % 2 == 0)printf("%d is a negative even\n", m);elseprintf("%d is a negative odd\n", m);}}若键入-9,则运行结果为:-9 is a negative odd12.#include<stdio.h>main( ){ char ch;ch=getchar( );switch(ch){ case ‘A’ : printf(“%c”,’A’);case ‘B’ : printf(“%c”,’B’);break;default:prin tf(“%s\n”,”other”);}}当从键盘输入字母A时,运行结果为:AB 13.#include <stdio.h> main( ){ int a=1,b=0;scanf(“%d”,&a); switch(a){ case 1: b=1;break; case 2: b=2;break; default : b=10;}printf("%d", b);}若键盘输入5,运行结果为:1014.#include <stdio.h>main ( ){ int i=0,j=0,k=6;if((++i>0)||(++j>0))k++;printf("%d,%d,%d\n",i,j,k); } 运行的结果为: 1,0,715.#include <stdio.h> main( ){ int x , y , z;x=20, y=40, z=60; while(x<y)x+=4, y-=4;z/=2;printf(“%d,%d,%d”,x,y,z); }运行结果为:32,28,3016.#include <stdio.h> main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);} }运行结果为:123 17.#include <stdio.h> main(){ int n=9;while(n>6){n--;printf(“%d,”,n); }}运行结果为:8,7,6,18.#include <stdio.h> main( ){ int sum=10,n=1; while(n<3){sum=sum-n;n++;}printf(“%d,%d”,n,sum); }运行结果为:3,7 19.#include <stdio.h>main(){ int num,c;scanf("%d",&num);do{c=num%10;printf("%d",c);}while((num/=10)>0);printf("\n");}从键盘输入23,则运行结果为:3220#include <stdio.h> main(){ int s=0,a=5,n; scanf("%d",&n);do{ s+=1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a); } 若输入的值1,运行结果为:2,121.#include <stdio.h> main(){ int n1,n2;scanf(“%d”,&n2);while(n2!=0){ n1=n2%10;n2=n2/10;printf(“%d”,n1); }} 若在运行时输入1298,运行结果为:892122.#include <stdio.h> main(){ int i;for (i=0;i<6;i++)printf (“%d”,++i); printf (“%d”,i++);}运行结果为:1356 23.#include "stdio.h"main() {char c;c=getchar(); while(c!='?') {putchar(c);c=getchar();} }如果从键盘输入abcde?fgh(回车)运行结果为:abcde24.#include <stdio.h>main(){ char c;while((c=getchar())!=’$’){ if(‘A’<=c&&c<=‘Z’)putchar(c);else if(‘a’<=c&&c<=‘z’)putchar(c-32); }}当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD 25.#include <stdio.h> main(){int i=0,s=0;do{ if(i%2){ i++; continue; } i++; s +=i;}while(i<7);printf("%d\n",s);}运行结果为:1626.#include <stdio.h> main(){int x=1, y =0; while(x<=10){ y+=x*x;if (y>=10)break;x++;}printf(“%d %d”,y,x); }运行结果为:327.#include <stdio.h> main(){ int x, y =0;for(x=1;x<=10;x++) { if(y>=10)break;y=y+x;}printf(“%d %d”,y,x); }运行结果为:10 528.#include <stdio.h>main( ){ int n=0;while(n<=3)switch(n){ case 0 : ;case 1 : printf(“%d,”,n);case 2 : printf(“%d,”,n);n=n+3;break;default: printf(“**”);n=n+1;}}运行结果为:0,0,** 29.#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch(y){case 0: a++;break; case 1: b++;break; }case 2: a++;b++;break;}printf(“a=%d, b=%d”,a,b);}运行结果为:a=2,b=130.#include <stdio.h>main(){ char grade=’C’;switch(grade){ case ‘A’: printf(“90-100\n”);case ‘B’: printf(“80-90\n”);case ‘C’: printf(“70-80\n”);case ‘D’: printf(“60-70\n”);break;case ‘E’: printf(“<60\n”);default : printf(“error!\n”); }}运行结果为:70-80 60-7031.#include <stdio.h>main(){ int k=0;char c='A';do{ switch(c++){ case 'A': k++;break; case 'B': k--;case 'C': k+=2;break; case 'D': k=k%2;continue; case 'E': k=k+10;break;default: k=k/3; }k++;}while(c<'C') ; printf("k=%d\n",k); }运行结果为:k=432.#include <stdio.h> main(){ int i=10;switch ( i ){ case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; }printf(“i=%d\n”,i);}运行结果为:i=13 33.#include <stdio.h> main( ){ int sum=0;i=0; while(i<=100)sum=sum+i;printf(“i=%d\n”,i); printf(“sum=%d\n”,sum); }运行结果为:死循环,无结果34.#include <stdio.h> main(){ int i,sum=0;i=1;do{sum=sum+i;i++;}while(i<=10); printf(“%d”,sum); }运行结果为:55 35.#include <stdio.h> main ( ){ int i=0, sum=1 ;do{sum+=i++ ;}while ( i<6 );printf ( “%d\n”, sum ); }运行结果为:1636.#include <stdio.h> main(){ int i;printf("\n"); for(i=0;i<6;i++) { printf("%d",i); if (i%2==0) printf("\n"); }}运行结果为:1234537.#include <stdio.h> main( ){ int i;for(i=0;i<8;i++) printf("%d,",++i); printf("%d,", i++); printf("%d", i);}运行结果为:1,3,5,7,8,938.#include<stdio.h> main( ){ int i=0, j=0; while( i<10) i++; while(j++<10) ; printf(“%d,%d”, i, j); }运行结果为:10,1139.#include<stdio.h>main( ){char i, j;for(i=’0’, j=’9’; i<j ; i++, j--) printf(“%c%c”, i, j);}运行结果为:091827364540.#include <stdio.h>main(){ int i, n, sum = 0, counter = 0; printf("Input 4 Numbers:\n"); for (i = 0; i < 4; i++){ scanf("%d", &n);if (n >= 0){ sum += n;counter++;}}printf("sum=%d,counter=%d\n", sum,counter);}若键入3 -5 7 -9运行结果为:sum=10,counter=2 41.#include <stdio.h>main(){ int i=5;do { switch (i%2){ case 4: i- -; break;case 6: i- -; continue;}i- -;i- -;printf(“i=%d\n”,i);} while(i>0);}运行结果为:i=3i=1i=-142.#include <stdio.h> main() { int y=9;for(;y>0;y- -) if(y%3==0){ printf(%d”,- -y); continue;}}运行结果为:852*43.#include <stdio.h> #define N 4 main(){ int i;int x1=1,x2=2;for(i=1;i<=N;i++){ printf("%4d%4d",x1,x2); if(i%2==0)printf("\n");x1=x1+x2;x2=x2+x1;}}运行结果为:1 2 3 513 21 3444.#include <stdio.h> main(){ int i, j;for(i=0;i<5;i++) {printf("\n");for (j=i++;j<6;j++) printf(“** “);}}运行结果为:** ** ** ** ** ** ** ** ** ** ** **45#include <stdio.h>main( ){int x, y;for(x=30,y=0;x>=10,y<10; x--,y++) x/=2, y+=2;printf(“x=%d,y=%d\n”,x,y);}运行结果为:x=0,y=12*46.#include <stdio.h> #define N 4main( ){ int i,j;for(i=1;i<=N;i++) { for(j=1;j<i;j++) printf(" "); printf("*");printf("\n");}}运行结果为:****三、函数1.#include <stdio.h>int Sub(int a, int b) {return (a -b);}main(){int x, y, result = 0; scanf("%d,%d", &x,&y ); result = Sub(x,y ) ;printf("result=%d\n",result); }当从键盘输入:6,3运行结果为:result=3 2.#include <stdio.h>int min( int x, int y ) { int m;if ( x> y )m = x;elsem = y;return(m);}main(){ int a=3,b=5,abmin ; abmin = min(a,b);printf(“min is %d”,abmin); }运行结果为:min is 53.#include<stdio.h>main( ){ int x=10;{ int x=20;printf(“%d, ”, x); }printf(“%d”, x); }运行结果为:20,10 4.#include<stdio.h>int fun(int m,int n) {static s=1;s++;return(s*(m+n));}main( ){ int a=0,b=1;printf("%d,",fun(a,b)); printf("%d,",fun(a,b)); }运行结果为:2,3,5.#include<stdio.h> func(int x) {x=10;printf(“%d, ”,x);}main( ){ int x=20;func(x);printf(“%d”, x); }运行结果为:10,206.#include <stdio.h> int m=4; int func(int x,int y){int m=1;return(x*y-m);}main(){int a=2,b=3;printf("%d\n",m);printf("%d\n",func(a,b)/m); }运行结果为:417.#include <stdio.h> int fun(int a, int b) { if(a>b)return(a);elsereturn(b);}main(){ int x=15, y=8, r; r= fun(x,y);printf("r=%d\n", r); }运行结果为:r=15 8.#include <stdio.h>int fac(int n){ int f=1,i;for(i=1;i<=n;i++)f=f * i;return(f);}main(){ int j,s;scanf(“%d”,&j);s=fac(j);printf("%d!=%d\n",j,s);}如果从键盘输入3,运行结果为:3!=69.#include <stdio.h> int b=1;void fun(){ int c=2;static int a=0; a=a+b+c;printf(“%d ”,a);}main(){ int cc;for(cc=1;cc<4;cc++)fun();}运行结果为:3 6 910.#include <stdio.h> int f(int a){ auto int b=0; static c=4;b=b+1; c=c+1; return(a+b+c); }main(){ int a=3,i;for(i=0;i<3;i++) printf(“\n%d”,f(a)); }运行结果为:9101111.#include <stdio.h> unsigned fun6(unsigned num) { unsigned k=1;do{ k*=num%10;num/=10;}while(num);return k;}main(){ unsigned n=26;printf(“%d\n”,fun6(n)); }运行结果为:12 12.#include <stdio.h>float f1(float x,float y) { float f2(float m,float n); float z;z=(x+y)/f2(x,y);return(z);}float f2(float m,float n) { float k;k=m-n;return(k);}main(){ float a=2,b=3,c;c=f1(a,b);printf(“\nc=%f”,c);}运行结果为:c=-513#include <stdio.h> int max(int x, int y); main(){ int a,b,c;a=7;b=8;c=max(a,b);printf("Max is %d",c); } max(int x, int y) { int z;z=x>y? x : y; return(z) ;}运行结果为:Max is 8*14.#include <stdio.h> int fac1(int n){ int f;if (n= =1) f=1; else f=fac1(n-1)*n; printf(“f=%d,”,f); return(f);} main(){ int y,n=4;y=fac1(n);printf(“y=%d\n”,y);}运行结果为:f=1,f=2,f=6,f=24,y=24四、数组1.#include <stdio.h>main(){ int i, a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]); }运行结果为:852 2.#include <stdio.h> main(){ int i,a[6];for (i=0; i<6; i++) a[i]=i;for (i=5; i>=0 ; i--) printf("%3d",a[i]);}运行结果为:5 4 3 2 1 03.#include <stdio.h> main( ){ int i,k,a[10],p[3]; k=5;for(i=0;i<10;i++) a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k); }运行结果为:21 4.#include <stdio.h> main( ){ int n[3][3], i, j;for(i=0;i<3;i++ ) {for(j=0;j<3;j++ ) {n[i][j]=i+j;printf(“%d ”, n[i][j]); }printf(“\n”);}}运行结果为:1 22 33 45.#include <stdio.h>int m[3][3]={{1},{2},{3}};int n[3][3]={1,2 ,3};main( ){ printf(“%d,”, m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]); }运行结果为:3,0 6.#include <stdio.h>main(){ int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=1; i<3; i++)printf("%d ",x[i][3-i]);}运行结果为:6 87.#include <stdio.h>main() {int j;char str[10]; scanf(“%s”, str);printf(“%s\n”,str); }键盘输入:howare(空格) you(回车)运行结果为:howare8.#include “stdio.h”func(int b[ ]) { int j;for(j=0;j<4;j++)b[j]=j;}main( ){ int a[4], i;func(a);for(i=0; i<4; i++)printf(“%2d”,a[i]); }运行结果为:0 1 2 39.#include <stdio.h>main(){char diamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}}; int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一个空格。
c语言读程序题例题讲解
好的,以下是一个C语言读程序的例题,并附上讲解。
题目:计算一个整数数组中的平均值。
C语言程序示例:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5}; // 定义整数数组int sum = 0; // 定义求和变量int n = sizeof(arr) / sizeof(arr[0]); // 计算数组元素个数 float average; // 定义平均值变量// 计算数组元素之和for (int i = 0; i < n; i++) {sum += arr[i];}// 计算平均值average = sum / n;// 输出结果printf("数组元素之和为:%d\n", sum);printf("数组元素个数为:%d\n", n);printf("平均值为:%.2f\n", average);return 0;}```讲解:1. 首先,我们定义了一个整数数组`arr`,并初始化了它的值。
2. 然后,我们定义了一个求和变量`sum`,用于存储数组元素之和。
3. 使用`sizeof`运算符计算数组元素个数,并将结果存储在变量`n`中。
4. 定义一个浮点数变量`average`,用于存储平均值。
5. 使用`for`循环遍历数组,计算数组元素之和。
6. 计算平均值,即将数组元素之和除以数组元素个数。
7. 使用`printf`函数输出结果,其中使用`%.2f`格式化输出浮点数,保留两位小数。
8. 最后返回0,表示程序正常结束。
c语言程序阅读填空运行结果改错题
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
C语言 程序设计基础试题一及答案
《程序设计基础》考试试卷一班级姓名学号____________一、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可行性(D)确定性2.以下选项中可作为C语言合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运行后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A) (B) (C) (D)8.有以下语句:int b;char c[10];,则正确的输入语句是A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);(C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
(完整word)C语言分章节练习
习题汇编第一章 C语言概述1。
1选择题【题1.1】以下不是C语言的特点的是( B )A。
C语言简洁、紧凑B.能够编制出功能复杂的程序C。
C语言可以直接对硬件进行操作D.C语言移植性好【题1.2】以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab。
c【题1.3】以下正确的c语言标识符是( C )。
A.%x B.a十b C.a123 D.test!【题1.4】一个c程序的执行是从( A )。
A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束【题1.5】一个C语言程序是由(B).A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成【题1.6】一个c程序是由( B ).A.一个主程序和若干子程序组成B.一个或多个函数组成C. 若干过程组成D.若干子程序组成【题1.7】C语言派程序的基本单位是( B )。
A.过程 B.函数 c子程序 D.标识符【题1.8】编辑程序的功能是( A )。
A.建立并修改程序 B.将c源程序编译成目标程序C.调试程序 D.命令计算机执行指定的操作1.2填空题【题1.9】c语言符号集包括【英文字母、数字和一些有待定含义的标点符号】。
【题1.10】一个c程序有且仅有一个【main()】函数。
【题1.11】C程序的基本单位是【函数】。
【题1.12】一个c程序有【1】个main( )函数和【若干】个其他函数。
【题1.13】在一个C源程序中,注释部分两侧的分界符分别是【/*】和【*/】。
【题1.14】结构化设计中的三种基本结构是【顺序结构、分支结构和循环结构】。
【题1.15】在C语言中,输入操作是由库函数【scanf】完成的,输出函数是由库函数【printf】完成的。
1.3编程题【题1.16】编写一个程序,在屏幕上输出你的姓名。
C语言选择题读程序习题及参考答案
C语言选择题读程序习题及参考答案一、选择题1、一个C程序中可以包含多个不同名的函数,但有且仅有一个。
(A)function (A)分号(B)include (B)逗号(B)print(C)main (C)句号(C)case(D)stdio (D)括号(D)default2、在C语言中,每个语句和数据定义都是用结束的。
3、不是C语言中提供的合法关键字。
(A)switch4、在C语言中,数据类型属于基本类型的是。
(A)整型、实型、字符型(C)结构体类型、实型(A)A p_0 do(B)空类型、枚举型(D)数组类型、实型5、下面四个选项中,均为不合法的用户标识符的是。
(B)float la0 a (D)123 temp INT(C)18和6(D)15和5(C)b-a goto int (A)9和66、语句int i=3,k; k=(i++)+(i++)+(i++); 执行后k和i的值分别为。
(B)12和57、判断字符串a和b相等,应当使用。
(A)if ( a = = b )(B)if ( !strcmp (a , b) ) (D)if ( strcmp (a , b) )(C)if ( strcpy ( a , b ) ) 是。
(A)a&&b(A)(B)(C)(D)10、已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。
(A)scanf(�D---‖,&i,&j,&k); (B)scanf(�D%d %d %d‖,&i,&j,&k); (C)scanf(�D%d,%d,%d‖,&i,&j,&k); (D)scanf(�Di=%d,j=%d,k=%d‖,&i,&j,&k);11、能正确表示�Dx的取值范围介于[1,10 ]和[200, 210 ]之间�D的表达式是。
C语言程序设计期末考试试题含答案
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
c语言程序阅读填空、运行结果、改错题
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);} 三、阅读程序题(1)3.141593,3.1416,3.142(2)6,8(3)4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
C语言经典程序100题(完整版)
C语言经典程序100题(完整版)-CAL-FENGHAI.-(YICAI)-Company One1【程序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;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
C语言程序设计期末考试试题含答案
C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。
3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。
4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。
6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。
函数可以没有返回值,此时函数类型为 void 。
7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。
8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。
c语言程序阅读题目(带解释)
阅读程序模拟题1.下面程序执行结果是#include<stdio.h>void swap(int *,int *);void main(){int a=5, b=7, *ptr1, *ptr2;ptr1=&a, ptr2=&b;swap (ptr1,ptr2);printf(“*ptr1=%d,*ptr2=%d\n”,*ptr1,*ptr2);printf(“a=%d,b=%d\n”,a,b);}void swap (int *p1, *p2){int p;p=*p1;*p1=*p2;*p2=p;}2.输入we are students ,下面程序运行结果3#include <stdio.h>*(求输入的单词数)void main(){ char string[81];int i,num=0,word=0;char c;gets(string);for(i=0;(c=string[i])!='\0';i++)if(c==' ') word=0;else if(word==0){word=1;num++;}printf(" %d\n",num);}3.下面程序的运行结果是 2 4 5 7 6 0 11 9 7 3#include<stdio.h> (求已输入数据的反置式子)void inv(int x[], int n);void main(){ int i,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("The array has been reverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);}void inv(int x[], int n){ int t,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}4.下面程序的运行结果是char *a=I am a teacherchar *b=I am a teacher #include<stdio.h>void copy_string(char *,char *);void main(){ char *a="I am a teacher.";char *b="You are a student.";copy_string(a,b);printf("\nstring_a=%s\nstring_b=%s\n",a,b);}void copy_string(char *from,char *to){ for(;*from!='\0';from++,to++)*to=*from;*to='\0';}5.下面程序的运行的功能是BASICComputerFORTRANFollow meGreat Wall(按从小到大排列单词)#include<stdio.h>#include<string.h>void sort(char *name[],int );void print(char *name[],int);void main(){char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer "};int n=5;sort(name,n);}void sort(char *name[],int n){ char *temp;int i,j,k;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++)if(strcmp(name[k],name[j])>0(若换成<0则是按从大到小)) k=j;if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;}}}void print(char *name[],int n){int i;for(i=0;i<n;i++)puts(name[i]);}6. 输入5回车后,下面程序的执行结果是 120#include<stdio.h>(求阶乘)long int fac(int );void main(){int n;scanf("%d",&n);printf("%d\n",fac(n));}long int fac(int m){long int f;if(m<0)printf("data error!\n");else if(m==0||m==1)f=1;elsef=fac(m-1)*m;return f;}7.下面程序执行的结果是:li 3Zhang 3Wang 2统计选票数目输入如下数据:LiZhangLiLiWangZhangWangZhang#include<stdio.h>struct person{char name[20];int count;}leader[3]={ "Li",0, "Zhang",0, "Wang",0};void main(){ int i,j;char leader_name[20];for(i=1;i<=8;i++){scanf("%s",leader_name);for(j=0;j<3;j++)if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;}for(i=0;i<3;i++)printf("%5s:%d\n",leader[i].name,leader[i].count);}8.输入17,下面程序执行的结果是17 is a prime number #include<stdio.h>(判断一个数是否是素数)#include<math.h>void main(){int m,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%d is a prime number\n",m);elseprintf("%d is not a prime number\n",m);}9.下面程序执行的结果是#include<stdio.h>#include<math.h>void main(){int a[3][3], i, j;for(i=0;i<3;i++)for(j=0;j<3;j++){switch(abs(i-j)){case 0: if(i==0||i==2)a[i][j]+=3;elsea[i][j]++;break;case 1: a[i][j]+=2; break;case 2: a[i][j]+=3;}}printf("%d , %d , %d",a[1][1], a[1][2], a[2][0]);}10.写出下面程序的运行结果: 8,17#include<stdio.h>int func (int ,int );void main ( ){int k=4,m=1,p1,p2;p1=func(k,m) ;p2=func(k,m) ;printf(“%d,%d\n”,p1,p2) ;}int func (int a,int b){Static(静态变量,执行完成后保留值)int m=0,i=2;i+=m+1;m=i+a+b;return (m);}11.以下程序执行后输出的结果是123,0#include <stdio.h>void main( ){FILE *fp;int i,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++)fprintf(fp, "%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp, "%d%d",&k, &n);printf("%d,%d\n",k, n) ;fclose(fp);}12.以下程序执行后输出的结果是3个空格1 3个空格23个空格3 3个空格43个空格5 3个空格6#include<stdio.h>void main(){int a[2][3]={{1,3,5},{2,4,6}};int b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++){b[j][i]=a[i][j];}}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%4d",b[i][j]);(输出4列,不足的前头补空)printf("\n");}}13.若输入的值是-75,以下程序的运行结果是-3*5*5#include<stdio.h>(求一个数的乘法分解)#include <math.h>void fun(int );void main( ){ int n;scanf("%d",&n);if(n<0) printf("-");n=abs(n);fun(n);}void fun(int x){int k,r;for(k=2;k<sqrt(x);k++ ){ r=x%k;while(r==0){printf("%d",k);x=x/k;if(x>1) printf("*");r=x%k;}}if(x!=1) printf("%d\n",x);}14.以下程序的运行结果是 4#include<stdio.h>#include<stdlib.h>struct NODE{int num;struct NODE *next;};void main( ){struct NODE *p,*q,*r;int sum=0;p=(struct NODE*) malloc(sizeof(struct NODE));q=(struct NODE *) malloc(sizeof(struct NODE));r=(struct NODE *) malloc(sizeof(struct NODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf("%d\n",sum);}15.输入87653142,下面程序运行的结果是7531#include<stdio.h>(取出数字中的奇数并组成新的数字)void fun(long int , long int *);void main(){long s, t;scanf("%ld", &s);fun(s, &t);printf("%ld\n", t);}void fun(long int s, long int *t){int d;long s1=1;*t=0;while(s>0){d=s%10;if(d%2!=0)(若改成=0,则输出数字中的偶数,并组成新的数字){*t=d*s1+*t;s1*=10;}s/=10;}}16.下面程序运行的结果13431#include<stdio.h>struct NODE{int k;struct NODE *link;};void main(){struct NODE m[5],*p=m,*q=m+4;int i=0;while(p!=q){p->k=++i;/*p指向k*/p++;q->k=i++;q--;}q->k=i;for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}。
C语言习题册答案集
第1章绪论一、选择题1~5 CABCD 6~10 BDCBC 11~15 AADCC二、程序填空题1、一个C语言程序是由函数组成的。
2、C源程序的后缀名为___.c_____3、在C程序中,main()函数最多有 1 个。
4、一个C语言程序总是从主函数/main( ) 开始执行。
5、在C语言里输入是由 scanf 函数实现,输出是由 printf 函数实现。
6、C语言中,当复合语句多于一条时,要求有一对 { } 括号。
7、一个C源程序必须经过_ 编译__和_链接__生成exe文件才能运行8、在一个C程序中注释部分两侧的分界符分别为_/*_____和_*/___9、编写计算机所程序所使用的语言称为__程序设计语言______。
10、程序设计语言的发展经历了三个阶段__机器语言__、_汇编语言_和__高级语言__第2章基本数据类型及顺序结构程序设计一、选择题01~05 ACDDA 06~10 ACAAC 11~15 BDBBC16~20 DABAA 21~25 DBDAA 26~30 ADDCB31~35 BDCAB二、程序填空题1、__基本数据类型、_构造类型___ 和___其它类型_______。
2、 4 、 4 、 8 、 1 。
3、 double4、 x<-5||x>5或 abs(x)>55、 y%2==1 或y%2!=06、 x%3==0&&x%7==0或x%21==0 ,7、 10 , 10 。
8、printf(“****a=%d, b=%d****”,a,b) 。
9、a:b ; c:t1 ;10、 x%10 , x/10%10 ;三、程序阅读题1、 G 。
2、 2, 1 。
3、 0 。
4、 16 。
5、2,50 。
6、 b 。
7、 3 。
8、10,20,0 。
9、 2, 20.00 。
10、67, e 。
第3章分支结构一、选择题01-05:DCBCD 06-10:CBBBC 11-15:CBBDB16-20:ACDAA 21-25:CADBC 26-30:CBBAD二、程序阅读题(共10题)1、 20,0 。
专升本C语言历年考试题及答案8[1]
专升本C语言历年考试题及答案江西财经大学2005年& & & &三、程序阅读题(共20分,每小题4分)1、# include <stdio.h>void main( ) {int i,sum=0;for(i=1;i<=30;i++)if(i%3!=0) continue;else sum=sum+i;printf(“sum=%d\n”,sum);}请叙述上面程序的功能,并写出程序的运行结果。
2、void main( ) {int a,b,x=1,y=1;scanf("%d%d",&a,&b);if (a>0) x=x+y;if (a<b) x=2*y;else if (a==b) y=5;else y=x+y;printf("x=%d,y=%d\n",x,y);}假设输入为: 2 -3<CR>, 则程序运行后的输出结果为: 3、void main() {int a[3][3]={2,4,6,8,10,12,14,16,18};int sum=0, i, j;for ( i=0; i<3; i++)for ( j=0; j<3; j++ )if (i==j) sum+=a[i][j];printf(“sum=%d\n”,sum) ;}请叙述上面程序的功能,并写出程序的运行结果。
4、void main( ){int i=0;int x,s1,s2,s3;s1=s2=s3=0;while(i++<10){scanf("%d",&x);switch(abs(x)%3){case 0:s1++;break;case 1:s2++;break;default:s3++;}}printf("s1=%d,s2=%d,s3=%d",s1,s2,s3);}请叙述上面程序的功能。
C语言程序设计习题答案(第三版)
C语言程序设计(第三版)习题答案习题一一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2(5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10二、简答题1. 设计程序时应遵循哪些基本原则?P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法具有哪些特点?答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种?答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。
4. 结构化程序设计方法的三种基本结构是什么?答:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S流程图最大的区别是什么?答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图或N-S流程图表示求解以下问题的算法。
1. 从键盘输入10个整数,求出其中的最小数并输出。
2. 求1+2+3+…+100的值。
3. 求10~50的所有素数之和。
4. 求下列分段函数的值。
四、请参照本章例题,编写一个简单的C 程序,输出以下三行信息。
**************************Yangtze University**************************#include <stdio.h>void main(){printf("**************************\n");printf(" Yangtze University\n");printf("**************************\n");}4X-1 (X ≤1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5)习题二一、选择题1~10: B C D C D D B C A A11~20: D A C D B D B A C D二、填空题1.字母 L 或字母 l2. %c(或字符) 、 %d(或整数)3.在程序运行过程中,其值可以在一定的范围内变化的量4.'\0'5.小数形式、指数形式6.关键字、预定义标识符、用户标识符7.字母、数字、下划线、数字8. 189. 2 、 1 、 3010.双精度实数或double11.赋值、逗号、 20 、 20 、 20 、 412. 4 、 4习题三一、选择题1~10: B C C B C C C D C C注:第4题答案D为: 10 22↙33↙二、填空题1. printf 、 scanf2. h3."%5d"4.'\0'5. e 、 E6. 67. s 、 c8. *9. - 、 +10. i三、编程题1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。
C语言程序设计习题集第4章 循环结构(答案)
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。
main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。
main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序main(){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。
C语言程序设计试卷(含答案)
说明:请将单项选择题(1~50 空)的正确答案涂写考试答题卡,将填空(51~75 空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。
、阅读程序题文字答题卡:(每空2 分,共24 分)三、完善程序填空题文字答题卡:(每空2分,共26 分)1题【63】2题【64】【65】【66】3题【67】【68】【69】4题【70】【71】【72】5题【73】【74】【75】、单项选择题(每空1 分,共50分)请将正确答案按【】中的序号写入答题卡,否则不得分1.在 C 语言中,一条语句以】字符作为结束符。
A) , B ) ; C) . 2.以 4 组标识符中,能作为变量名使用【】 。
A) age , struct , s1 B) 2A , b_3, main C) ELSE ,a[2],m123 D) _abc , INT ,abcd 3.判char 型变量 ch 是否为数字字符的正确表达式为 【】 。
A) 0<=ch<=9 B) '0'<=ch<='9' C) ( 0<=ch )&& D) ('0'<=ch )&& 大写字母 A 的 ASCII 码值是 65, 97, D) 无符号 4.已知小写字母 a 的 ASCII 码值是 输出大写字母 B 的是 【】 。
A ) putchar( 'A'+1 ); C) putchar( 98-32); 5.空字符串的长度是 【】 A ) 0 B) 1 6.整型变量 a 定义后赋初值的结果是 int a=2.8*6 ; A ) 12 B ) 若有以下说明语句,则该语句 char a='\077' ; A) 使 a 的值包含 C) 使 a 的值包含 下面的程序结果为: main() {int x=023 ; printf ( "%d\n" , --x); }A ) 17B ) 18 源程序执行后,屏幕上显示 【】 。
c语言程序阅读题目(带解释)
printf("%d is a prime number\n",m);
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
}
void inv(int x[], int n)
{ int t,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{
j=n-1-i;
t=x[i];
x[i]=x[j];
x[j]=t;
}
}
4.下面程序的运行结果是char *a=I am a teacher
char *b=I am a teacher
#include<stdio.h>
void copy_string(char *,char *);
void main()
{ char *a="I am a teacher.";
char *b="You are a student.";
copy_string(a,b);
}
8.输入17,下面程序执行的结果是17is a prime number
#include<stdio.h>(判断一个数是否是素数)
#include<math.h>
void main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;