蓝莓题库

中国大学mooc程序设计基础试题及答案-k8凯发

欢迎来访!

k8凯发-凯发官网入口外贸答案 正文

作者2022-12-05 19:27:29外贸答案 78 ℃0 评论
第一章 程序设计基础知识

小测验

1、一个c程序的执行是从 。
    a、本程序的main函数开始,到main函数结束
    b、本程序的第一个函数开始,到本程序文件的最后一个函数结束
    c、本程序的main函数开始,到本程序文件的最后一个函数结束
    d、本程序的第一个函数开始,到本程序main函数结束

2、以下叙述正确的是 。
    a、在c程序中,main函数必须位于程序的最前面
    b、c程序的每行中只能写一条语句
    c、c语言本身没有输入输出语句
    d、在对一个c程序进行编译的过程中,可以发现注释中的拼写错误

3、下叙述不正确的是 。
    a、一个c源程序可由一个或多个函数组成
    b、一个c源程序必须包含一个main函数
    c、c程序的基本组成单位是函数
    d、在c程序中,注释说明只能位于一条语句的后面

4、c语言规定:在一个源程序中,main函数的位置 。
    a、必须在最开始
    b、必须在系统调用的库函数的后面
    c、可以任意
    d、必须在最后

5、一个c语言程序是由 。
    a、一个主程序和若干子程序组成
    b、函数组成
    c、若干过程组成
    d、若干子程序组成

6、c语言的源程序必须通过 和连接后,才能被计算机执行。

7、在vc环境中用运行一个c程序时,所运行程序的后缀是 。

8、c语言源程序文件的后缀是 。

9、c语言源程序经过编译后,生成文件的后缀是 。

10、结构化程序由 顺序结构、选择结构、 三种基本结构组成。

11、在c语言中,输入操作是由库函数 完成的。

12、在c语言中,输出操作是由库函数 完成的

第二章 c语言基本数据类型、运算符与表达式

测验

1、设c语言中的一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为 。
    a、0~255
    b、0~32767
    c、0~65535
    d、0~2147483647

2、下列4组选项中,均不是c语言关键字的选项是 。
    a、define iff typey
    b、getc char printf
    c、include scanf case
    d、while go pow

3、下面4个选项中,均是合法整型常量的选项是 。
    a、160 0xffff 011
    b、-0xcdf 01a 0xe
    c、-01 986,012 0668
    d、x48a 2e5 0x

4、下面4个选项中,均是合法浮点数的选项是 。
    a、 1e 1 5e-9.4 03e2
    b、-.60 12e-4 -8e5
    c、123e 1.2e-.4 2e-1
    d、-e3 .8e-4 5.e-0

5、下面4个选项中,均是合法转义字符的选项是
    a、'\'' '\\' '\n'
    b、'\' '\018' '\"'
    c、'\018' '\f' 'xab'
    d、'\\0' '\101' 'xlf'

6、下面正确的字符常量是 。
    a、"c"
    b、"\\"
    c、'w'
    d、""

7、下面4个选项中,均是正确的八进制数或十六进制数的选项是 。
    a、-10 0x8f -o19
    b、0abc -017 0xc
    c、010 0x11 0xf1
    d、0a12 -0x123 -0xa

8、下面不正确的字符串常量是 。
    a、'abc'
    b、"12'12"
    c、"0"
    d、""

9、在c语言中,int、char和short三种类型数据在内存中所占用的字节数 。
    a、由用户自己定义
    b、均为2个字节
    c、是任意的
    d、由所用机器的机器字长决定

10、以下表达式值为3的是 。
    a、16-13% 10
    b、2 3/2
    c、14/3-2
    d、(2 6)/(12-9)

11、设有说明语句:int k=7,x=12;则以下能使值为3的表达式是 。
    a、x%=(k%=5)
    b、x%=(k=k%5)
    c、x%=k=k%5
    d、(x%=k)-(k%=5)

12、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为 。
    a、4
    b、16
    c、32
    d、52

13、以下不正确的叙述是
    a、在c程序中,逗号运算符的优先级最低
    b、在c程序中,aph和aph是两个不同的变量
    c、若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变
    d、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

14、在c语言中,要求运算数必须是整型的运算符是
    a、/
    b、
    c、%
    d、!=

15、表达式x=6应当读做 。

16、若有定义语句: int m=5,y=2; 则执行表达式y =y-=m*-y后的y值是 。

17、在c语言中的实型变量分为两种类型,它们是float和 (写关键字,不写中文)。

18、c语言所提供的基本数据类型包括:单精度型、双精度型、 (写汉字)、 字符型和空类型。

19、已知字母a的ascil码为十进制数97,设ch='c',则表达式ch-'a' '8'-'3'的值为 。

20、若有定义语句:int s=6;则表达式s%2 (s 1)%2的值为 。

21、若a是int型变量,则表达式(a=4*5,a*2),a 6的值为 。

22、若a、b和c均是int型变量,则执行表达式a=(b=4) (c=2)后a的值为 。

23、若a是int型变量,且a的初值为6,则执行表达式a =a-=a*a后a的值为

24、若有定义语句:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a b)/2 (int)x%(int)y的值为 (保留1位小数)。

25、若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x y)%2 (int)a/(int)b的值为 。(注意结果的类型)

26、假设变量a、b均为整型,则表达式(a=2,b=5,a ,b ,a b)的值为 。

第三章 简单c程序设计(顺序、选择、循环)

顺序结构

1、以下程序的运行结果是 。 #include void main() { int m=5,n=10; printf("%d,%d\n",m ,--n); }
    a、5,9
    b、6,9
    c、5,10
    d、6,10

2、以下程序的运行结果是 。
    a、01,12
    b、201,10
    c、01,10
    d、20,01

3、#include void main() { char chl='a',ch2='a'; printf("%c\n",(chl,ch2)); }则以下叙述中正确的是 。
    a、程序的输出结果为大写字母a
    b、程序的输出结果为小写字母a
    c、运行时产生错误信息
    d、格式说明符的个数少于输出项的个数,编译出错

4、已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是 。
    a、整型变量的输出格式符只有%d一种
    b、%x是格式符的一种,它可以适用于任何一种类型的数
    c、%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
    d、%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

5、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 。
    a、scanf(”%d%lx,%le”,&x,&y,&z);
    b、scanf(”%2d*%d%lf”,&x,&y,&z);
    c、scanf(”%x%*d%o”,&x,&y);
    d、scanf(“%x%o%6.2f”,&x,&y,&z);

6、#include void main() { char cl,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&cl,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); } 若运行时从键盘输入数据: abc<回车> defg<回车> 则输出结果是 。
    a、abcd
    b、abde
    c、abef
    d、abfg

7、以下不符合c语法的赋值语句是 。
    a、m=(2 1,m=1);
    b、m=n=0;
    c、m=1,n=2;
    d、5 ;

8、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是 。
    a、int a=b=c=5;
    b、int a,b,c; a=b=c=5;
    c、a=5,b=5,c=5;
    d、a=b=c=5;

9、已知ch是字符型变量,下面不正确的赋值语句是 。
    a、ch='a b ';
    b、ch='\0’;
    c、ch='7' '9';
    d、ch=5 9;

10、已知ch是字符型变量,下面正确的赋值语句是 。
    a、ch='123 ';
    b、ch='\xff ';
    c、ch='\08 ';
    d、ch=”\”;

11、以下程序的输出结果为 。 #include void main() { printf("*%.2f,%4.3f*",3.14,3.1415); }

12、以下程序的输出结果为 。 #include void main( ) { char c='x'; printf("c:dec=%d,oct=%o,hex=%x,ascii=%c",c,c,c,c); }

13、以下程序的输出结果是 。

14、以下程序的运行结果是 。 #include void main() { int n=100; char c; float f=10.0; double x; x=f*=n/=(c=48); printf("%d,%d,%3.1f,%3.1f",n,c,f,x); }

15、已知字母a的ascil码值为65。以下程序的输出结果是 。 #include void main() { char a,b; a='a' '4'-'3'; b='a' '6'-'2'; printf("a=%d,b=%c",a,b); }

选择结构和循环结构

1、下列关系表达式中结果为假的是 。
    a、0!=1
    b、2<=8
    c、(a=2*2)==2‍
    d、y=(2 2)==4

2、下列运算符中优先级最低的是 。
    a、?:
    b、 =‍
    c、>=
    d、==

3、以下程序的运行结果是 。#include void main( ) { int y=3,x=3,z=1; printf("%d %d\n",( x,y ),z 2); }
    a、3 4
    b、4 2
    c、4 3
    d、3 3

4、已知int x=10,y=20,z=30;执行以下语句后x、y、z的值是 。 if(x>y) z=x;x=y;y=z;
    a、x=10,y=20,z=30
    b、x=20,y=30,z=30
    c、x=20,y=30,z=10‍
    d、x=20,y=30,z=20

5、以下语法正确的if语句是 。
    a、if(x>0) printf("%f",x)
    b、if(x>0) { x=x y; printf("%f",x); }
    c、if(x>0) { x=x y;printf("%f",x);}; else printf(”%f”,-x);
    d、if(x>0) { x=x y;printf(”%f”,x)} else printf("%f",-x);

6、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是 。 if(a    a、1
    b、2
    c、3
    d、6

7、有一函数关系如下表所示。 x y x<0 x-1 x=0 x x>0 x 1 以下能正确表示上面关系的程序段是 。
    a、y=x 1; if(x>=0) if(x==0)y=x; else y=x-1;
    b、y=x-1; if(x!=0) if(x>0) y=x 1; else y=x;
    c、if(x<=0) if(x<0)y=x-1; else y=x; else y=x 1;
    d、y=x; if(x<=0) if(x<0) y=x-1; else y=x 1;‍

8、以下程序的输出是 。 #include void main() { int x=2,y=-1,z=2; if(x    a、3
    b、2
    c、1
    d、0

9、以下程序的输出是 。 #include "stdio.h" void main() { int x=1; if(x=2) printf("0k"); else if(x<2) printf("%d\n",x); else printf("quit"); }
    a、ok
    b、quit
    c、1
    d、无输出结果

10、若u、w、x、y均是正整型变量,则以下正确的switch语句是 。
    a、switch(x y) { case l0:u=x y;break; case 11:w=x-y;break; }
    b、switch x { default:u=x y; case 10:w=x-y;break; case 11:u=x*y;break; }
    c、switch(x*x y*y) { case 3: case 3:w=x y;break; case 0:w=y-x;break; }
    d、switch(pow(x,2) pow(y,2)) (注:pow是调用求幂的数学函数) { case 1: case 3:w=x y;break; case 0: case x:w=x—y; }‍

11、设有程序段:int k=10; while(k=0)k=k-1; 则下面描述中正确的是 。‍
    a、while循环执行10次
    b、循环是无限循环
    c、循环体语句一次也不执行
    d、循环体语句执行一次

12、设有以下程序段:int x=0,s=0; while(!x!=0) s = x; printf ("%d",s); 则以下叙述正确的是 。
    a、运行程序段后输出0
    b、运行程序段后输出1‍
    c、程序段中的控制表达式是非法的
    d、程序段执行无限次

13、下面程序段的运行结果是 。 x=y=0; while(x<15) y ,x = y; printf("%d,%d",y,x);
    a、20,7
    b、6,12
    c、20,8
    d、8,20

14、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请补充第5行while后的表达式。 #include void main() { int i=0,j,k; do{i ;k=316-13*i;}while( ); j=k/11; printf("316=13*%d 11*%d",i,j); }
    a、k/11‍
    b、k%11
    c、k/11==0
    d、k/11=0

15、下面程序的运行结果是 。 #include void main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); }
    a、-1
    b、1
    c、8
    d、0

16、下面程序的运行结果是 。 #include void main() { int i,b,k=0; for(i=1;i<=5;i ) { b=i%2; while(b-->=0)k ; } printf("%d,%d",k,b); }
    a、3,-1
    b、8,-1
    c、3,0
    d、8,-2

17、下面程序的运行结果是 #include void main() { int x,i; for(i=1;i<=100;i ) { x=i; if( x%2==0) if( x%3==0) if( x%7==0) printf("%d",x); } }
    a、39 81
    b、42 84
    c、26 68
    d、28 70

18、下面程序的运行结果是 。 #include void 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<'g'); printf("k=%d\n",k); }
    a、k=3
    b、k=4
    c、k=2
    d、k=0

19、下面程序的运行结果是 。 #include void main() { int i,j,a=0; for(i=0;i<2;i ) { for(j=0;j<4;j ) { if(j%2)break; a ; } a ; } printf("%d\n",a); }
    a、4
    b、5
    c、6
    d、7

20、以下程序的功能是:输出x、y、z三个数中的最大者。请补充第8行的表达式。 #include void main( ) { int x=4,y=6,z=7; int u; if(x>y) u=x; else u=y ; if( )y=u; else y=z; printf("y=%d",y); }

21、以下程序的功能是:输入3个整数,按从大到小的顺序进行输出。请补充第10行表达式。 #include void main() { int x,y,z,c; scanf("%d%d%d",&x,&y,&z); if(y
22、以下程序的功能是判断输入的某个年份是否是闰年。请补充第7行else后的子句。 #include void main( ) { int y,f; scanf("%d",&y); if(y% 400==0) f=1; else if(y% 4==0&&y% 100!=0) f=1; else ; if(f) printf("%d is",y); else printf("%d is not",y); printf("a leap year\n"); }

23、以下程序的输出结果是 ‍。#include void main() { int a=2,b=7,c=5; switch(a>0) { case 1:switch(b<0) { case 1:printf("@");break; case 2:printf("!");break; } case 0:switch(c==5) { case 0:printf("*");break; case 1:printf("#");break; default:printf("#");break; } default:printf("&"); } }‍

24、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。请补充第9行程序。#include void main() { int day,x1,x2; day=0; x1=1020; while(x1>0) { x2=__________; xl=x2; day ; } printf("day=%d\n",day); }

25、下面程序的运行结果是 。 #include void main() { int a,s,n,count; a=2; s=0; n=1; count=1; while(count<=7) {n=n*a;s=s n; count;} printf("s=%d",s); }

26、下面程序的运行结果是 。 #include void main() { int i,t,sum=0; for(t=i=1;i<=10; ) { sum =t; i; if(i%3==0) t=-i; else t=i; } printf("sum=%d",sum); }

顺序结构作业

1、将华氏温度转换为摄氏温度和绝对温度分别为: 5 c= —(f-32) (摄氏温度) 9 k=273.16 c (绝对温度) 请编写程序,从键盘输入f值,输出c和k的值,输出结果保留两位小数。

循环结构作业

1、有一分数序列,求出前n项和(结果保留两位小数) 2/1, 3/2, 5/3, 8/5, 13/8, 21/13...

2、打印1~n(n为正整数)之间所有素数

3、输入两个正整数m和n,求其最大公约数和最小公倍数。

4、打印所有的水仙花数。 所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。如:153=1*1*1 5*5*5 3*3*3

选择结构作业

1、编写程序,求y值(结果保留两位小数,x值由键盘输入) y= (sinx cosx)/2 x ≥ 0 y=(sinx-cosx)/2 x <0

2、给出一个百分制整数成绩,要求输出成绩等级a、b、c、d、e。 90分以上为a 80~89分为b 70~79分为c 60~69分为d 60分以下为e

期中考试

期中考试客观题

1、用c语言编制的源程序要变为目标程序,必须经过( )。
    a、汇编
    b、解释
    c、编辑
    d、编译

2、下列字符序列中,不可用作c语言标识符的是( ) 。
    a、b70
    b、no.1
    c、_symbol
    d、a_1

3、一个c语言的源程序中,( ) 。
    a、必须有一个主函数
    b、可以有多个主函数
    c、必须有主函数和其他函数
    d、可以没有主函数

4、以下( ) 组中的常数都是合法的c语言常量。
    a、"222" 7ff 03
    b、'123' 78 ''
    c、"12.50" -0x1g1 3.e-5
    d、'e' "x-y" 3e5

5、若变量已正确定义并赋值,不符合c语言语法的表达式是( )。
    a、a=a 7
    b、a=7 b c,a
    c、int(12.3%4)
    d、m=a=c b

6、设a、b、c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )。
    a、a&&b
    b、b>=a
    c、a||b c&&b-c
    d、!((b>a)&&(c||1))

7、以下程序段的输出结果是 ( )。
    a、b-20
    b、c-20
    c、67-20
    d、b-21

8、以下是c语言的合法常量是 ( ) 。
    a、'mm'
    b、float a=5
    c、1.25e2
    d、029

9、设 a=10,则表达式a =a- =a*=a 的值为( )。
    a、100
    b、200
    c、0
    d、1

10、putchar 函数可以向终端输出一个( )。
    a、整型变量表达式
    b、实型变量值
    c、字符型变量值
    d、字符串变量值

11、若有以下函数关系 x<0 则 y=2x x>0 则 y=x x=0 则 y=x 1 下面程序段能正确表示以上关系的是( ) 。
    a、y=2*x; if (x!=0) if(x>0) y=x; else y=x 1;
    b、y=2*x if(x<=0) if(x==0) y=x 1; else y=x;
    c、if (x>=0) if(x>0) y=x; else y=x 1; else y=2*x;
    d、y=x 1; if(x<=0) if(x<0) y=2*x; else y=x;

12、表达式 !( 4 == 7 )&&( 3 > 6 ) 的值为( )。
    a、1
    b、0
    c、4
    d、7

13、以下符合c语言中选择型的语句是( )。
    a、{ y=a*x y; goto end; } end: ;
    b、while (x>0) y=a*x y;
    c、if (x>=0) while (x>0) y=a*x y;
    d、for (;x>0;) y=a*x y;

14、设有如下程序: 则以下叙述中正确的是( )。
    a、程序的输出结果为大写字母a
    b、程序的输出结果为小写字母a
    c、运行时产生错误信息
    d、格式说明符的个数少于输出项的个数,编译出错

15、以下程序段 ( )。
    a、是死循环
    b、循环执行二次
    c、循环执行一次
    d、有语法错误

16、break语句的作用是( )。
    a、终止复合语句{ }内所有语句的执行
    b、终止循环语句的执行
    c、终止switch语句的执行
    d、既终止循环语句的执行也能终止switch语句的执行

17、已知ch是字符型变量,下面不正确的赋值语句是( )。
    a、ch='a b';
    b、ch='\0';
    c、ch='7' '9'
    d、ch=5 9

18、下面关于for循环的正确描述是( )。
    a、for循环只能用于循环次数已经确定的情况
    b、for 循环是先执行循环体语句,后判断表达式
    c、在for循环中,不能用break语句跳出循环体。
    d、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。

19、设整型变量 x 的值为8,则下列表达式中值为1的是( )。
    a、x =x-=x=x
    b、x%=x-1
    c、x%=x%=3
    d、x/=x x

20、若有以下定义,则正确的赋值语句是 ( )。 int a,b; float x;
    a、a=1,b=2,
    b、b
    c、a=b=5;
    d、b=int(x);

21、表示关系x>=y>=z的c语言表达式为( ) 。
    a、(x>=y)&&(y>=z)
    b、(x>=y)and(y>=z)
    c、(x>=y>=z)
    d、(x>=y)&(y>=z)

22、以下描述中正确的是( )。
    a、while、do-while、for循环中的循环体语句都至少被执行一次。
    b、do-while 循环中,while(表达式)后面的分号可以省略。
    c、while 循环体中,一定要有能使while后面表达式的值变为“假”的操作。否则会产生死循环
    d、do-while循环中,根据情况可以省略while

23、以下程序的功能是判断某一年是否为闰年,请将【1】处补充完整。 闰年的条件是符合下列二者之一: (1)能被400整除 (2)能被4整除,但不能被100整除。

24、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。请将空【1】处补充完整。

25、设c语言中的一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为0至( ) 。

26、在一个c语言源程序中,注释部分左侧的分界符是( ) 。

27、在c语言中,输入操作是由库函数( ) 完成的。(说明:只填写函数名,不带括号)

28、以下程序的输出结果是 ( )。

29、以下程序的执行结果是( )。

30、以下程序的执行结果是( )。

31、以下程序的执行结果是( )。

32、阅读下列程序,并写出当从键盘上输入abcde# 后,下列程序的输出结果为( ) 。

33、以下程序的执行结果是( )。

34、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如‘a’变成‘f’,‘w’变成‘b’。请将填空【1】补充完整。说明:写出最简洁的形式,不要任何空格,语句后的分号已经给出,填空时不要再重复写。

35、在表达式s=10中,其中“=”为( )运算符。

36、设变量的定义如下: char a; int b; float c,d; 则表达式a*b c/d 值的类型为 ( )(写关键字,不写汉字)。

37、表达式3.5 1/2计算结果是( )(保留一位小数)。

期中考试编程题

1、请为如下分段函数编写程序,当输入一个x值,计算输出y的数值,结果保留两位小数: y=x (x≤1) y=2x-1 (1
2、编程输出n以内的所有完全数,n从键盘输入。 所谓完全数是指一个数恰好等于它的因子之和。例如6的因子有1、2、3,而6=1 2 3,所以6是完全数。

3、输出1~20所有勾股数,即两个数的平方和等于第三个数的平方。

4、编程计算1~n的阶乘之和,n从键盘输入。

第四章 函数

函数测验

1、在以下的叙述中,正确的是 。
    a、c语言中所有的函数名都是由用户自行命名。
    b、c语言程序中主函数必须定义在程序的头部位置。
    c、c语言中可以没有主函数。
    d、c语言程序总是从主函数处开始执行。

2、在c语言预处理命令处有下列定义:# include “xxx……x.h”则” ”内正确的含义是 。
    a、函数头文件
    b、函数名的预说明部分
    c、宏定义
    d、程序名

3、构成一个完整的c源程序必须有且只有一个 。
    a、函数
    b、过程
    c、主函数
    d、程序

4、在以下的叙述中,正确的是 。
    a、c语言程序总是从第一个定义的函数处开始执行
    b、c语言程序中程序总是从主函数处开始执行
    c、c语言中,所有函数必须在主函数内定义
    d、c语言中,必须将主函数放在程序的头部

5、以下正确的函数定义是 。
    a、double fun(int x,int y) { z=x y; return z; }
    b、fun(int x,y) { int z; return z; }
    c、fun(x,y) { int x,y ; double z; z=x y; return z; }
    d、double fun(int x, int y) { double z; z=x y; return z; }

6、c语言中,以下正确的说法是 。
    a、实参和与其对应的形参各占用独立的存储单元
    b、实参和与其对应的形参共占用一个存储单元
    c、只有当实参和与其对应的形参同名时才共占用存储单元
    d、形参是虚拟的,不占用存储单元

7、关于return语句正确的说法是 。
    a、必须后带表达式,作为函数的返回值
    b、必须在每个函数中出现
    c、可以在同一个函数中出现多次
    d、不可以用在主函数中

8、函数的递归调用是指
    a、函数a调用函数a
    b、函数a调用函数b
    c、函数b调用函数a
    d、主函数调用函数a,函数a又调用函数b

9、以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空完成函数功能(两个空之间用一个#分隔,答案中不要空格)。 void fun(int a[10]) { int i; for(i=1; i<=10; i ) _________=i; for(i=0; i<5; i ) _________=a[i]; }

10、以下是将字符串str2插入到字符串str1的第n个字符以后的函数,请填空完成函数功能(两个空之间用一个#分隔,答案中不要加空格)。 void insert_string(char str1[],char str2[],int n ) { char temp[80]; strcpy(temp,str1 n); strcpy(________,str2); strcpy(&str1[n] _________,temp); }

函数作业

1、编写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。

2、编写递归函数,计算n!。要求n值从主函数输入,n为正整数。

第五章 数组

数组测验

1、设数组定义为:int a[5]; 则正确引用数组元素的是 。
    a、a[0]
    b、a[5]
    c、a[2,3]
    d、*a[0]

2、下面描述中不正确的说法是 。
    a、对于char 型数组可以用于存放字符串
    b、对于char 型数组可以用于存放整型量
    c、使用赋值语句可以将数组名直接赋给某个指针型变量
    d、不能用关系运算符直接对两个字符串进行比较

3、给出以下定义: char y[]={'a','b','c','d','e','f',''}; 则执行完下列语句后运行结果为: printf("%d,", sizeof(y)); printf("%d", strlen(y));
    a、7,7
    b、6,7
    c、6,6
    d、7,6

4、正确定义字符串变量的形式是 。
    a、char str[5] ='a';
    b、char str[5] ='abcd';
    c、char str[5] ="a";
    d、char str [5] ="abcde";

5、若有下列语句,则输出结果正确的是 。 char s[12]="a book!"; printf("%d",strlen(s));
    a、12
    b、8
    c、7
    d、11

6、下面哪一项不是正确的字符串赋值或赋初值表达式 。
    a、char *str="china";
    b、char str[]={'c','h','i','n','a'};
    c、char str[5]="china";
    d、char str[]="china";

7、仔细阅读下面程序,写出程序运行结果 。

8、以下程序运行结果是 。 #include #include void main() { int i,j,k; char str[]="nice to meet you"; for(i=0,j=strlen(str)-1; i
数组作业

1、编写程序,首先通过键盘输入二维整型数组(4×5)所有元素值,再找出最大数和最小数并输出结果。

2、从键盘上输入10个整数,编程将这10个数从小到大排序输出。

第六章 指针

指针测验

1、若有下列程序段: int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p; p=a 6; printf("%d",*p ) 则在屏幕上输出的结果是__________。
    a、1
    b、6
    c、7
    d、8

2、已知下列函数定义 setw (int *b,int m,int n,int dat) { int k; for(k =0;k    a、setw (*a,5,8,1)
    b、setw (&a,5,8,1)
    c、setw ((int *)a,5,8,1 )
    d、setw (a,5,8,1)

3、执行下列程序段后,a的值为________。 int a=12, *p; p=&a; a=*p 5;
    a、5
    b、17
    c、15
    d、20

4、若要对a进行自增运算,则a应具有下面说明_______.
    a、int a[3][2];
    b、char *b={"12","ab"}; int *a=&b;
    c、char a[3];
    d、int b[10], *a=b;

5、要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确实现此功能的函数是_________.
    a、void funa(int x , int y) { int t; t=x;x=y;y=t; }
    b、void funa(int *x , int *y) { int t = *x; *x = *y; *y = t; }
    c、void funa(int *x , int *y) { int *p; *p=*x;*x=*y;*y=*p; }
    d、int funa(int *x , int *y) { *x=*y;*y=*x; }

6、对于如下定义,哪个表达式是不正确的。 int k,a[10],*p=a;
    a、p[0]=k
    b、p
    c、a
    d、*p =2

7、以下程序的运行结果是________。 #include void main() { int *p1, *p2, i1, i2, i ; i1=10; i2=20; p1=&i1; p2=&i2; i=*p1; *p1=*p2; *p2=i ; printf("i1=%d,i2=%d\n",i1, i2); }

8、阅读程序,写出执行结果___________。 #include void swap (int *p1,int *p2) { int p; p= * p1; *p1= *p2; *p2 = p; } void main() { int a=6,b=9; int * p1, * p2; p1=&a;p2=&b; if (a
9、阅读程序,写出执行结果___________。 #include void ast(int x,int y,int *cp,int *dp) { *cp=x y; *dp=x-y; } void main() { int a,b,c,d; a=4;b=3; ast(a,b,&c,&d); printf("%d,%d",c,d); }

指针作业

1、编写函数strc(s1,s2,n),用指针形式把s2中的前n个字符添加到s1尾部。要求:字符串s1、字符串s2、n值都在主函数进行输入(s1和s2中包含空格字符,输入时用回车隔开)。

第七章 结构体

结构体测验

1、设定义一个结构类型如下: struct student { char name[10]; char address[50]; long post; long tel; } 则在定义该结构变量struct student li 后,系统分配给变量li的内存单元字节数是 。
    a、4
    b、62
    c、68
    d、102

2、当定义一个结构体变量时,系统分配给它的内存是______。
    a、各成员所需内存量的总和
    b、结构中第一个成员所需内存量
    c、成员中占内存量最大的容量
    d、结构中最后一个成员所需内存量

3、下面程序的运行结果是______。 void main( ) { struct complx{ int x; int y; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); }
    a、0
    b、1
    c、2
    d、6

4、如下说明语句,则下面叙述不正确的是______。 struct stu { int a ; float b ; }stutype ;
    a、struct是结构体类型的关键字
    b、stu是用户定义的结构类型名
    c、stutype是用户定义的结构体类型名
    d、a和b都是结构体成员名

5、设有以下说明和定义语句 struct st { int n; struct st *next; }; static struct st a[3]={5,&a[1],7,&a[2],9,''},*p; p=&a[0]; 则以下表达式的值为6的是________。
    a、p ->n
    b、p->n
    c、 p->n
    d、(*p).n

6、以下对结构体变量成员不正确的引用是_______。 struct pupil { char name[20]; int age; int sex; } pup[5], *p=pup;
    a、scanf("%s",pup[0].name);
    b、scanf("%d",&pup[0].age);
    c、scanf("%d",&(p->sex));
    d、scanf("%d",p->age);

期中考试

期中考试客观题

1、用c语言编制的源程序要变为目标程序,必须经过( )。
    a、汇编
    b、解释
    c、编辑
    d、编译

2、下列字符序列中,不可用作c语言标识符的是( ) 。
    a、b70
    b、no.1
    c、_symbol
    d、a_1

3、一个c语言的源程序中,( ) 。
    a、必须有一个主函数
    b、可以有多个主函数
    c、必须有主函数和其他函数
    d、可以没有主函数

4、以下( ) 组中的常数都是合法的c语言常量。
    a、"222" 7ff 03
    b、'123' 78 ''
    c、"12.50" -0x1g1 3.e-5
    d、'e' "x-y" 3e5

5、若变量已正确定义并赋值,不符合c语言语法的表达式是( )。
    a、a=a 7
    b、a=7 b c,a
    c、int(12.3%4)
    d、m=a=c b

6、设a、b、c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )。
    a、a&&b
    b、b>=a
    c、a||b c&&b-c
    d、!((b>a)&&(c||1))

7、以下程序段的输出结果是 ( )。
    a、b-20
    b、c-20
    c、67-20
    d、b-21

8、以下是c语言的合法常量是 ( ) 。
    a、'mm'
    b、float a=5
    c、1.25e2
    d、029

9、设 a=10,则表达式a =a- =a*=a 的值为( )。
    a、100
    b、200
    c、0
    d、1

10、putchar 函数可以向终端输出一个( )。
    a、整型变量表达式
    b、实型变量值
    c、字符型变量值
    d、字符串变量值

11、若有以下函数关系 x<0 则 y=2x x>0 则 y=x x=0 则 y=x 1 下面程序段能正确表示以上关系的是( ) 。
    a、y=2*x; if (x!=0) if(x>0) y=x; else y=x 1;
    b、y=2*x if(x<=0) if(x==0) y=x 1; else y=x;
    c、if (x>=0) if(x>0) y=x; else y=x 1; else y=2*x;
    d、y=x 1; if(x<=0) if(x<0) y=2*x; else y=x;

12、表达式 !( 4 == 7 )&&( 3 > 6 ) 的值为( )。
    a、1
    b、0
    c、4
    d、7

13、以下符合c语言中选择型的语句是( )。
    a、{ y=a*x y; goto end; } end: ;
    b、while (x>0) y=a*x y;
    c、if (x>=0) while (x>0) y=a*x y;
    d、for (;x>0;) y=a*x y;

14、设有如下程序: 则以下叙述中正确的是( )。
    a、程序的输出结果为大写字母a
    b、程序的输出结果为小写字母a
    c、运行时产生错误信息
    d、格式说明符的个数少于输出项的个数,编译出错

15、以下程序段 ( )。
    a、是死循环
    b、循环执行二次
    c、循环执行一次
    d、有语法错误

16、break语句的作用是( )。
    a、终止复合语句{ }内所有语句的执行
    b、终止循环语句的执行
    c、终止switch语句的执行
    d、既终止循环语句的执行也能终止switch语句的执行

17、已知ch是字符型变量,下面不正确的赋值语句是( )。
    a、ch='a b';
    b、ch='\0';
    c、ch='7' '9'
    d、ch=5 9

18、下面关于for循环的正确描述是( )。
    a、for循环只能用于循环次数已经确定的情况
    b、for 循环是先执行循环体语句,后判断表达式
    c、在for循环中,不能用break语句跳出循环体。
    d、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。

19、设整型变量 x 的值为8,则下列表达式中值为1的是( )。
    a、x =x-=x=x
    b、x%=x-1
    c、x%=x%=3
    d、x/=x x

20、若有以下定义,则正确的赋值语句是 ( )。 int a,b; float x;
    a、a=1,b=2,
    b、b
    c、a=b=5;
    d、b=int(x);

21、表示关系x>=y>=z的c语言表达式为( ) 。
    a、(x>=y)&&(y>=z)
    b、(x>=y)and(y>=z)
    c、(x>=y>=z)
    d、(x>=y)&(y>=z)

22、以下描述中正确的是( )。
    a、while、do-while、for循环中的循环体语句都至少被执行一次。
    b、do-while 循环中,while(表达式)后面的分号可以省略。
    c、while 循环体中,一定要有能使while后面表达式的值变为“假”的操作。否则会产生死循环
    d、do-while循环中,根据情况可以省略while

23、以下程序的功能是判断某一年是否为闰年,请将【1】处补充完整。 闰年的条件是符合下列二者之一: (1)能被400整除 (2)能被4整除,但不能被100整除。

24、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。请将空【1】处补充完整。

25、设c语言中的一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为0至( ) 。

26、在一个c语言源程序中,注释部分左侧的分界符是( ) 。

27、在c语言中,输入操作是由库函数( ) 完成的。(说明:只填写函数名,不带括号)

28、以下程序的输出结果是 ( )。

29、以下程序的执行结果是( )。

30、以下程序的执行结果是( )。

31、以下程序的执行结果是( )。

32、阅读下列程序,并写出当从键盘上输入abcde# 后,下列程序的输出结果为( ) 。

33、以下程序的执行结果是( )。

34、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如‘a’变成‘f’,‘w’变成‘b’。请将填空【1】补充完整。说明:写出最简洁的形式,不要任何空格,语句后的分号已经给出,填空时不要再重复写。

35、在表达式s=10中,其中“=”为( )运算符。

36、设变量的定义如下: char a; int b; float c,d; 则表达式a*b c/d 值的类型为 ( )(写关键字,不写汉字)。

37、表达式3.5 1/2计算结果是( )(保留一位小数)。

期中考试编程题

1、请为如下分段函数编写程序,当输入一个x值,计算输出y的数值,结果保留两位小数: y=x (x≤1) y=2x-1 (1
2、编程输出n以内的所有完全数,n从键盘输入。 所谓完全数是指一个数恰好等于它的因子之和。例如6的因子有1、2、3,而6=1 2 3,所以6是完全数。

3、输出1~20所有勾股数,即两个数的平方和等于第三个数的平方。

4、编程计算1~n的阶乘之和,n从键盘输入。

猜你喜欢

  • 2022-12-05 20:21
  • 2022-12-05 20:11
  • 2022-12-05 19:52
  • 2022-12-05 19:44
  • 2022-12-05 19:28
  • 2022-12-05 18:54
  • 2022-12-05 18:36
  • 2022-12-05 18:33
  • 2022-12-05 18:20
  • 2022-12-05 18:07
网站分类
最新发表
标签列表
网站地图