C语言程序设计期末试题附答案3篇(完整)
C语言程序设计期末试题附答案1 1若a、b均为int型变量,且a=100,则以下的for循环是死循环. for(b=100;a!=b;++a,b++)printf(----\n); 执行语下面是小编为大家整理的C语言程序设计期末试题附答案3篇(完整),供大家参考。
C语言程序设计期末试题附答案1
1若a、b均为int型变量,且a=100,则以下的for循环是死循环.
for (b=100;a!=b;++a,b++) printf("----\n");
执行语句:for(i=1;i++<4;++i);后;变量i的值是5。
2以下程序的运行结果是【 】
main()
{int x,y,z;
x=1;y=2;z=3;
x=y--<=x||x+y!=z;
printf("%d,%d",x,y);
}
3以下程序的运行结果是【 】
main()
{int x,y,z;
x=1;y=1;z=0;
x=x||y&&z;
printf("%d,%d",x,x&&!y||z);
}
4以下程序的运行结果是【 】
main()
{int a,b,c;
int s,w=0,t;
a=-1;b=3;c=3;
if(c>0)s=a+b;
if(a<=0)
{if(b>0)
if(c<=0)w=a-b;
}
else if(c>0)w=a-b;
else t=c;
printf("%d,%d,%d\n",s,w,t);
}
5阅读下面程序:
main()
{ int s, t, a, b;
scanf("%d%d",&a, &b);
s=1;
t=1;
if(a>0) s=s+1;
if(a>b) t=s+t;
else if (a==b) t=5;
else t=2*s;
printf("s=%d, t=%d", s, t);
}
6为了使输出结果t=4, 输入量a和b应满足的条件是【 】
7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。
#include
{ int a,max=0;
scanf("%d",&a)
while(【 】){ if (max scanf("%d",&a); } printf("%d",max); } 8执行下面的程序段后,k值是【 】。 k=1; n=263; do { k*=n%10; n/=10; } while(n); 9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。 #include main() { int a,d,sum; a=2;d=3;sum=0; do { sum+=a; a+=d; if (【 】) printf("%d\n",sum); } while(sum<200); } 10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 for(x=1;x<=29;x++) { y=30-x; if (【 】) printf("%d,%d\n",x,y); } 11写出下面程序的运算结果【 】。 # include main ( ) { int a=14, b=63; while (a!=b) {while (a>b) a-=b; while (a } printf ("%d\n",a); } 12下列程序的输出为【 】。 #include main() { int i,j,x=0; for(i=0;i<3;i++) { if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf("x=%d\n",x); } ——C语言程序设计期末试题及答案3篇 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include main ( ) { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf ("i=%d, j=%d, a=%d\n", i,j,a);} A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是( ) A) 0 B) 1 C) 2 D) 3 4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf("####"); printf("****"); A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf("%d", &x); y=x>12 ? x+10:x-12; printf("%d\n", y);} A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c); A)a=1 b=2 c=1 B)a=1 b=2 c=3 C)a=1 b=3 c=1 D)a=2 b=3 c=2 8当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; A) 1 B)2 C)3 D)6 9以下不正确的语句为( ) A)if(x>y); B)if(x==y)&&(x!=0)x+=y; C)if(x!=y)scanf("%d",&x);else scanf("%d",&y); D)if(x 10有以下程序: #include"stdio.h" main( ) {char i; for (; (i=getchar ())!="\n";) {switch (i-"a") {case 0: putchar (i); case 1: putchar (i+1);break; case 2: putchar (i+2); case 3: break; default: putchar (i);break; } } printf ("\n"); } 输入下列数据后,程序的输出结果是( ) abcde A) abcde B) abcee C) abbde D) abccdd 11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case 1 :y=a-b; break { case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break; } 12写出下面程序输出结果( ) {int x=1, y=0, a=0, b=0; switch(x) {case 1: switch(y) {case 0: a++; case 1: b++; } case 2: a++; b++; } printf("a=%d, b=%d\n", a, b) ; } A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式 均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 A) < B) ++ C) ; D) , 14下面有关for循环的正确描述是( )。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判定表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环体语句中,可以包含多条语句,但要用花括号括起来 15以下程序段( )。 x=-1; do { x=x*x;} while(!x) A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 16如下的数组中,数组array占用的内存空间是( )个字节。 char array[]={"c","h","i","n","a"}; A. 1 B. 5 C. 6 D. 不确定 17设有程序段 int k=10; while(k=0) k=k-1; 则下面描述正确的是( )。 A) while 循环执行10次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 18下列程序段的运行结果是( ) int n=0; while(n++<3); printf("%d",n) A. 2 B. 3 C. 4 D. 以上都不对 19设有程序段 t=0; while(printf("*")); { t++; if (t<3) break; } 下面描述正确的是( )。 A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与"0"等价 C) 其中循环控制表达式是不合法的 D) 以上说法都不对 20下面程序的运行结果是( )。 #include main() { int y=10; do { y--;} while(--y); printf("%d\n",y--); } A) -1 B) 1 C) 8 D) 0 21以下程序段的输出结果是( ). main() { int i=5; for ( ;i<=15; ) { i++; if (i%4==0) printf("%d ",i); else continue;} } A. 8 12 16 B. 8 12 C. 12 16 D. 8 22以下不是无限循环的语句为( )。 A) for(y=0,x=1;x>++y;x=i++) i=x; B) for( ; ;x++=i); C) while(1){x++;} D) for(i=10; ; i--) sum+=i; 23有如下语句 int x=3; do { printf("%d\n",x-=2);} while(!(--x)); 则上面程序段( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环 24以下不是无限循环的是( ) A. for(y=0,x=1;x>++y;x=i++) i=x; B. for( ; ;x++=i); C. while(1) x++; D. for(i=10; ;i--) s+=i; 25以下正确的描述是( )。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 26以下程序输出结果为( ) #include "stdio.h" main() {int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf("%d,%d\n",k,b); } A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2 27以下程序段中循环体总的执行次数是( ) int i,j; for(i=7;i;i--) for(j=0;j<6;j++) {......} A) 42 B) 21 C) 13 D) 36 28以下不正确的描述是( ) A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 1else语句总是和靠它最近的if匹配。 2switch语句中一定有default分支 3case后只能跟常量,不能跟变量 4break语句的作用就是结束本层循环。 5do-while语句构成的循环不能用其它语句构成的循环来代替。 6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。 7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。 8for循环中,如果表达式2为空,则该循环一定是死循环。 9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。 1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分) A.switch(x) { case 1.0: printf("* "); case 2.0 printf("** "); } B.switch((int)x) { case 1.0: printf("* "); case 2.0 printf("** "); } C.switch(a+b) { case 1: printf("* "); case 2+1: printf("** "); } D.switch(a+b) { case 1: printf("* ") case c: printf("** "); } 标准答案:C 2. 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出的结果是( ) int a; a=Y; printf("%d ",Z); printf("%d",--a); (2分) A.7,6 B.12,6 C.12,5 D.7,5 标准答案:D 3. 下面的符号常量定义中,正确的是 ( ) (2分) A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 标准答案:D 4. 以下程序的输出结果是( ) int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d ", a,b); } (2分) A.100200 B.57 C.200100 D.75 标准答案:D 5. 若有以下调用语句,则不正确的fun函数的首部是( ) main() { … int a[50],n; … fun(n, &a[9]); … } (2分) A.void fun(int m, int x[]) B.void fun(int s, int h[41]) C.void fun(int p, int *s) D.void fun(int n, int a) 标准答案:D 6. 以下程序的输出结果是( ) fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } (2分) A.0 B.29 C.31 D.无定值 标准答案:C 7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分) A.auto和static B.auto和register C.register和static D.extern和register 标准答案:B 8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 标准答案:B 9. 以下函数值的类型是( ) fun ( float x ) { float y; y= 3*x-4; return y; } (2分) A.int B.不确定 C.void D.float 标准答案:A 10. C语言规定函数的返回值的类型是由( ) (2分) A.return语句中表达式类型决定 B.调用该函数时的主调函数类型决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型决定 标准答案:D ——C语言程序设计试题附答案3篇 1. 用C语言编写的代码程序( B ) A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 2. C语言中用于结构化程序设计的三种基本结构是( A ) A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 3. 以下定义语句中正确的是( C ) A)char a="A"b="B"; B float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a; 4.下列选项中,不能用作标识符的是( D ) A)_1234_ B)_1_2 C) int_2_ D)2_int_ 5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B ) A)称为函数的直接递归调用 B)称为函数的间接递归调用 C)称为函数的循环调用 D)C语言中不允许这样的递归调用 6.以下叙述中正确的是 ( A ) A)局部变量说明为static存储类,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同 7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B) A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5); 8.有以下程序(a) main() { char a="a",b; printf("%c,",++a); printf("%c\n",b=a++);} 程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c 9.有以下函数定义:(c) void fun(int n, double x) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x) 10.已定义c为字符型变量,则下列语句中正确的是(c) A)c="97"; B)c="97"; C)c=97; D)c="a"; 11.以下能正确定义一维数组的选项是(a) A)int num[]; B) #define N 100 C)int num[0..100]; D) int N=100; int num[N]; int num[N]; 12.以下能正确定义数组并正确赋初值的语句是(d) A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}}; 13.有以下程序(a) main() { int i; for (i=0; i<3; i++) switch (i) { case 1: printf("%d ", i); case 2: printf("%d ", i); default : printf("%d ", i); } } 执行后输出结果是 A)011122 B)012 C)012020 D)120 14.有以下程序(d) main() { int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf("%d\n", k); } 执行后输出结果是 A)58 B)56 C)45 D)24 15.以下叙述中正确的是(c) A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点 16.下列叙述中正确的是(d) A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型 17.以下叙述中正确的是(a) A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分 二、填空题 1.以下程序输入3个整数值给a,b,c,变量b中的值给a,变量c中的.值给b,变量a中的值给c,交换后输出a,b,c的值。 #include main() { int a,b,c,__①_d___; printf("enter a,b,c");scanf("%d%d%d",&a,&b,&c); ___d=a_②____;__a=b_③_____;____b=c④_____;_c=d__⑤_____; printf("%d,%d,%d",a,b,c); } 2.求出200以内的整数中,最大的可以被17整除的数是哪个数。 #include ___①main()____ {int i; for(_i=200___②____;___③i>=0_______;i--) {if(____i%17==0____④________) break;} printf("%d\n",__⑤_i____); } 3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。 main() { int i,a[20],sum,count; sum=count=0; for(i=0;i<20;i++) scanf("%d", __①_a[i]__ ); for(i=0;__ ②_i<20_;i++) ? { if(a[i]>0) ?? { count++; ?? sum+= _a[i]__③___ ; ?? } ? } printf("sum=%d,count=%d\n",__sum④___,__⑤__count___); } 4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。请填空。 int fun( int n) { int m=0,i; for(i=__1_①___; i<=n; _i++_②____) { m=_m+i__③____; } return _④__m__; } main() { printf("m=%d\n", __⑤__ fun(10)_); } 5.以下程序将数组中的数据按逆序存放。 #include #define SIZE 12 main() {int a[SIZE],i,j,t; for(i=0;i i=0;j=_SIZE_②____; while(i {t=a[i];__a[i]=a[j]____ ③______;__a[j]=t___④________;i++;j_--__⑤_____} for(i=0;i printf("\n"); ——C语言程序设计模拟试题附答案3篇 一、单项选择题(20分,每题2分) 1.程序段 int *p,a; p=&a; a=10; printf("%d",p); 的输出应为: A)10 B)0 C)不能确定 D)语法错误 2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式 3.以下语句或语句组中,能正确进行字符串赋值的是。 A)char *sp;*sp="right!"; B)char s[10];s="right!"; C)char s[10];*s="right!"; D)char *sp="right!"; 4.for(i=0;i<10;i++) if(i〈=5) break; 则循环结束后i的值为 A)0 B)1 C)5 D)10 5.有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%dn",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 789 6.C语言中,最基本的数据类型包括: A)整型、实型、逻辑型 B)整型、字符型、数组 C)整型、实型、字符型 D)整型、实型、结构体 7.以下说法正确的是 A) C程序总是从第一个定义的函数开始执行 B) 在C程序中,要调用的函数必须在main()函数中定义 C) C程序总是从main()函数开始执行 D) C程序的main()函数必须放在程序的开始部分 8.程序段 int *p, a=1; p=&a; *p=10; a的值为: A) 1 B) 10 C) 不能确定 D) 11 9.以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n]; 10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20 二、填空题(30分,每空2分) 1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。 char ch=’B’; printf("%c %d\n",ch,ch); 2.’a’在内存中占 (2) 个字节,”a”在内存中占 (3) 个字节。 3.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。 4.有以下程序,执行后输出结果是 (5) 。 main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf("%dn",t); } 5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。 6.下面程序段将字符数组b连接到数组a的后面。 main() { char a[20]= ."I am "; char b[]= ."a student."; int i, j; i = strlen(a); for(j =__(8)___; b[j]!=""; j++) { a[__(9)__] = b[__(10)__]; } a[___(11)__] = ___(12)___ ; } 7.for(表达式1;表达式2;表达式3) 语句组 的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。 三、写出程序的运行结果(30分,每题10分) 1.写出程序运行后的输出结果。 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 2.写出程序运行后的输出结果 #include main() { float x=2,y; if(x<0) y=0; else if(x<10) y=1/x; else y=1; printf(“%fn”,y); } 3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。 long sub(int num) { int i; long subsum=1; for(i=1;i<=num;i++) subsum*=i; return(subsum); } main() { int i; long sum=0; for(i=1;i<=4;i++) { sum+=sub(i); printf("sum%1d=%ldn",i,sum); } } 四、编程(完形填空)(20分,每题10分) 1.写一个函数,实现将一个长度≤80的"字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。 void convert(char string[]) { int length,mid,i; char temp; length=____(1)____(string); mid=____(2)_____; for(____(3)____;i { temp=____(4)_____; string[i]=string[____(5)_____]; string[(length-1)-i]=temp; } } 2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。 main() { int yy,mm,day; scanf(“%d%d”,&yy,&mm); switch(__(6)___) { case1: case3: case5: case7: case8: case10: case12: day=__(7)___; break; case4: case6: case9: case11: day=__(8)___; break; case2: if(((yy%4==0)_(9)_(yy%100!=0)) (10)_(yy%400==0)) day=29; else day=28; break; } } } ——C语言程序设计方风波著课后习题答案下载3篇 点击此处下载☞☞☞C语言程序设计(方风波著)课后答案☜☜☜ ——C语言程序设计试卷及答案3篇 一、单项选择题(20分,每题2分) 1.若整型变量a、b、c、d中的值依次为:1、4、 3、2。则条件表达式(a A)1 B)2 C)3 D)0 2.for(i=0;i<10;i++) if(i〈=5) break; 则循环结束后i的值为 A)0 B)1 C)5 D)10 3.下面正确的字符常量是: A)“c” B)‘\\’’ C)‘W’ D)‘’ 4.C语言中,运算对象必须是整型的运算符是: A)% B)/ C)* D)+ 5.数字字符0的ASCII值为48,若有以下程序 main() { char a="1", b="2"; printf("%c,",b++); printf("%dn",b-a); } 程序运行后的输出结果是。 A) 3,2 B)50,2 C)2,2 D)2,50 6.以下选项中不能作为合法常量的是。 A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 7.以下说法正确的是 A)C程序总是从第一个定义的函数开始执行 B)在C程序中,要调用的函数必须在main()函数中定义 C)C程序总是从main()函数开始执行 D)C程序的main()函数必须放在程序的开始部分 8.若有说明:char c=‘\72’;则变量c: A)包含一个字符 B)包含2个字符 C)包含3个字符 D)说 明不合法,c的值不确定 9.以下说法正确的是 A)C程序总是从第一个定义的函数开始执行 B)在C程序中, 要调用的函数必须在main()函数中定义 C)C程序总是从main()函数开始执行 D)C程序的main()函 数必须放在程序的`开始部分 10.int *p1,*p2,a[10]; p1=a; p2=&a[5]; 则p2-p1 的值为: A)无法 确定 B)10 C)5 D)12 二、填空题(30分,每空2分) 1.已知宏定义#define s 2+3 printf(”%d”,s*4) ;的输出结果是__(1)_____。 2.若已知a=10,b=2 .0,则表达式!a 3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。 void fun2(int *x,int *y) { int t; t=*x; *x=*y.; *y=t; } void fun1() { int a=20, b=30, c=25; if(c>b) fun2(__.___(3)_______); if(a if(a } 4.有以下程序,.执行后输出结果是 (6) 。 main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf("%d\n",t); } .. .. 5.C语言函数是由函数头和..函数体两部分组成。其中,函数头包括 (7) ,(8) 和(9) 。 6.表达式(a==b)&&(a>b)的值是___(10)____。 7.将下列字符串表示成C语言的字符串常量 C:\TC\LIB_____(11)_________ He said:"I’m a student."___________(12)_________________ 85% student passed.______________(13)_____________ 8.下面程序的功能是..计算1-3+5-7+…-99+101的值存在s中,请填空。 #include #include main() { int i,t=1,s=0; for(i=1;i<=101;__(14)__) { . s=s+i*t; t=__(15)___; } . } 三、读程序写结果 1.写出程序的运行结果 #include main() { int i, sum=0; for(i=0;i<20; i++) { sum += i; if((i%2==0) || (i%3==0) ) i += 5; } printf("%d", sum); } } 2.写出程 序运行后的 输出结果 #include char *ss(char *s) { return s+strlen(s)/2; } main( ) { char *p,*str="abcdefgh"; p=ss(str); printf("%s\n",p); } 3. (1)函数sub()的功能是什么? (2)写出程序运行的输出结果。 int sub(int num) { int i,product=1; for(i=1;i<=num;i++) product*=2; return(product); } main() { int i,sum=0; for(i=0;i<=3;i++) { sum+=sub(i); printf("sum%d=%dn",i,sum); } } 四、编程(完形填空)(20分,每题10分) 1.找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。 main() { int i,count=___(1)___; printf("nthese numbers are:n"); for(i=1;i__(2)____100;i++) if((i%7==0&&i%9!=0) _(3)__(i%7!=0__(4) _i%11==0)) { count++; printf("%10d",i); if(count%4==0) printf("___(5)_____"); } } 2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差, 例如:输入的两个字符串分别为abcd和abcfe,则输出为-2.请完成填空. #include main() { char str1[100],str2[100],c; int i,s; printf("ninput string1:n"); gets(str1); printf("ninput string2:n"); gets(__(6)____); i=0; while((str1[i]==str2[i])&&(str1[i]!=_(7)__)) ___(8)____; s=____(9)_____; printf("___(10)_____n",s); } ——C语言程序设计(陈明晰著)课后答案下载3篇 点击此处下载☞☞☞C语言程序设计(陈明晰著)课后答案☜☜☜ ——c语言程序设计实践心得体会3篇 说到我学习C语言时,真是用千言万语呀!记得刚开始学的时候,我的C语言学的并不是很好,学期都过了快一半了,对C语言还是一知半解的,我是第四小组的组长,组长的职位给我了很大的压力,我一直认为做学问都要做到这一点,要么做到最好,要么就不去做它,本着这样一个心太,我下了一个决心就是要学好C语言,开始我用了最笨的方法,就是一个厚厚的本子,一支笔,一本C语言书,天天有事没事抄程序,不管什么程序,我都不放过,一个一个的抄,抄了有好几个本,回到宿舍就在机子上调程序,一个月过去了,老师让做C语言项目,是一个学生成绩管理系统,在当时这样一个项目对我们来说真是难度不小,可是我本着一个试一试的心太去做了,一个打死我都不敢相信的奇迹出现了,这个程序我写出来了,而且几乎是一气合成,而且只用了一个晚上的时间,写了足足有六页的代码,看着写在本子上的代码我有点不相信,这怎么可能呢,当晚我没有睡着觉,高兴啊,谁能睡的着。做这个项目让我明白了一些道理,再大的程序也是有不同的小程序组成的,因为我天天抄程序,抄的全是小程序,做这个大点的程序的时候我发现全是一个一个的小程序,抄了一个月的程序,当然能很顺利的就写出来了。 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理、简单界面程序、高级界面程序、程序的添加修改、用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基矗为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: 1、加深对课堂讲授容的理解 课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。 通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。 2、熟悉程序开发环境、学习计算机系统的操作方法 一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 3、学习上机调试程序 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。 通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。 学习C语言已经一年多,对C也算得上半个入门者,期间也写过一些自娱自乐的代码。其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言。所以,C语言的重要性不言而喻。 一、课本 无论用的是什么书,要学好C语言,把书上的每一个例题、习题的代码读懂,这是学C最基本的要求。弄懂每一章的内容是什么?在C语言中有什么用?并尝试修改每一个例题的代码,采用不同的代码来实现题目的要求。 二、课堂 在每一节课上,注意老师讲的内容,有的知识,老师稍微提点,你就能弄懂,但是自己看书,或许你几天也弄不懂。老师更能清晰地让你明白所要求掌握的知识点。在课堂上,尽可能多的在草稿纸上写下你自己的代码,让老师看或是自己上机调试。 三、笔记 无论学习什么知识,笔记是重点,俗话说:好记性不如烂笔头。一个认真学习的人,总是记了很多笔记的,想学好编程,你的笔记本上总有课本上的每一个例题代码的核心部分。以及八大经典的算法举例,递推、递归、穷举、贪心、分治、动规、迭代、分枝。 四、交流 想学好C语言,交流是必须的,尤其是学习C语言的新手,这里,我向大家推介DD百度C语言贴吧,这里有很多的学习者,也有很多高手,在这里你能学到课本以及课堂上学不到的东西。和他人交流也是很重要的。 五、上机练习 这是学习好C语言的关重要的"环节,无论你编程学得多好,上机实现才是目的,所以,不怕要辛苦,把你的每一段代码都敲进计算机,让计算机来实现,这样有助于你对程序的理解,并试着修改你的代码,让你的代码更精简,效率更高。*时没事的时候,在计算机上多敲代码,一个编程厉害的高手,他的计算机上会有多代码。 想成为编程高手的军规: 1、大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘! 2、编程不是技术活,而是体力活。 3、C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。 4、计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣。 5、学习编程的秘诀是:编程,编程,再编程。C语言程序设计期末试题附答案3篇扩展阅读
C语言程序设计期末试题附答案3篇(扩展1)
C语言程序设计期末试题及答案1
C语言程序设计期末试题及答案2
C语言程序设计期末试题附答案3篇(扩展2)
C语言程序设计试题附答案1
C语言程序设计期末试题附答案3篇(扩展3)
C语言程序设计模拟试题附答案1
C语言程序设计期末试题附答案3篇(扩展4)
C语言程序设计方风波著课后习题答案下载1
C语言程序设计期末试题附答案3篇(扩展5)
C语言程序设计试卷及答案1
C语言程序设计期末试题附答案3篇(扩展6)
C语言程序设计(陈明晰著)课后答案下载1
C语言程序设计期末试题附答案3篇(扩展7)
c语言程序设计实践心得体会1
c语言程序设计实践心得体会2