中国大学mooc程序设计基础慕课答案大全-新全讯2网

建筑类题库 2395
c语言是什么?

初识c语言随堂测验

1、以下哪个选项不是c语言的特点?( )
    a、简洁紧凑、灵活方便
    b、运算符丰富
    c、比java语言的移植性好
    d、生成代码质量高,程序执行效率高

c语言基础知识-单元测试

1、以下说法中正确的是( )。
    a、c语言程序总是从第一个定义的函数开始执行
    b、在c语言程序中,要调用的函数必须在main( )函数中定义
    c、c语言程序总是从main( )函数开始执行
    d、c语言程序中的main( )函数必须放在程序的开始部分

2、下面关于编译预处理命令的说法中,正确的是( )。
    a、一条文件包含命令能包含多个文件
    b、文件包含命令不可以嵌套使用
    c、编译预处理命令是在编译之前被处理的命令
    d、编译预处理命令中的“#”可以省略

3、以下叙述错误的是( )。
    a、一个c程序可以包含多个不同名的函数
    b、一个c程序只能有一个主函数
    c、c程序在书写时,有严格的缩进要求,否则不能编译通过
    d、c程序的主函数必须用main作为函数名

4、一个c程序有且仅有一个( )函数。
    a、库函数
    b、main函数
    c、自定义函数
    d、形式函数

5、源程序要正确地运行,必须要有( )。
    a、printf函数
    b、自定义的函数
    c、main函数
    d、不需要函数

6、c语言源程序的基本单位是( )。
    a、过程
    b、函数
    c、子程序
    d、标识符

程序设计基础知识

常量随堂测验

1、以下( )不是浮点型数据“1000”的指数表示形式。
    a、e3
    b、1e 3
    c、1.0e 3
    d、1e3

2、可以实现换行功能的转义字符是( )。
    a、'\n'
    b、'\\'
    c、'\t'
    d、'\''

变量随堂测验

1、以下程序的功能是求长方形的周长和面积。在划线处应该依次填入( )。 #include void main(){ int l=3,w=5; int area,len; area=______ ; len=2*(l w); printf("周长为:%d\n面积为:%d\n", _______ , _________ ); }
    a、l*w,len,area
    b、l*w,area,len
    c、l w,len,area
    d、l*w,l,w

浮点型数据随堂测验

1、以下选项中可用作c程序合法实数的是( )。
    a、1e0
    b、3.0e0.2
    c、e9
    d、9.12e

字符型数据随堂测验

1、有以下定义语句,编译时会出现编译错误的是( )。
    a、char a='a';
    b、char a='\n';
    c、char a='aa';
    d、char a='\x2d';

算术运算符与表达式随堂测验

1、下面程序的输出结果为( )。 #include void main() { int a=10,c=3,d; double x=10,y=3,z1,z2; d=a/c; z1=a/c; z2=x/y; printf("%d,%lf,%lf\n",d,z1,z2); }
    a、3.333333,3.333333,3.333333
    b、3,3,3.333333
    c、3.333333,3.00000,3.333333
    d、3,3.000000,3.333333

自增,自减运算符随堂测验

1、以下程序的运行结果是( )。 #include void main( ) { int a=-1,b=4,k; k=( a<0 b--="0); printf("%d%d%d\n",k,a,b); }
    a、104
    b、004
    c、013
    d、003

赋值运算符随堂测验

1、表达式a =a-=a=9的值为( )。
    a、0
    b、9
    c、18
    d、-1

数据类型转换随堂测验

1、以下程序的运行结果为( )。 #include void main() { int a; a=(int)((double)(3/2) 0.5 (int)1.99*2); printf("%d\n",a); }
    a、5
    b、4
    c、3
    d、2

程序设计基础知识-单元测试

1、下列属于c语言合法的字符常量的是( )。
    a、'\85'
    b、"n"
    c、'\t'
    d、"\0"

2、下面四个选项中,均是不合法的用户标识符的选项是( )。
    a、ba、x_0、do
    b、float、1a0、_y
    c、x-y、goto、123
    d、_123、tmp、char

3、表达式'a' 4*25.0-'b'的正确结果是( )。
    a、67
    b、67.0
    c、不确定
    d、67l

4、若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是( )。
    a、1
    b、4
    c、4.333333
    d、4.6

5、设有定义"float y=3.45678;int x;",则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达式是( )。
    a、y=(y*100 0.5)/100.0
    b、y=(y/100 0.5)*100.0
    c、y=y*100 0.5/100.0
    d、x=y*100 0.5,y=x/100.0

6、针对简单程序设计,以下叙述的实施步骤正确的是( )。
    a、确定算法和数据结构、编码、调试、整理文档
    b、编码、确定算法和数据结构、调试、整理文档
    c、整理文档、确定算法和数据结构、编码、调试
    d、确定算法和数据结构、调试、编码、整理文档

7、c语句"x*=y 2;"还可以写作( )。
    a、x=x*y 2;
    b、x=2 y*x;
    c、x=x*(y 2);
    d、x=y 2*x;

8、设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是( )。
    a、x ; printf((“%d\n”,x);
    b、n= x; printf((“%d\n”,n);
    c、 x; printf((“%d\n”,x);
    d、n=x ; printf((“%d\n”,n);

9、下述程序段的输出结果是( )。 int x=10; int y=x ; printf("%d,%d", x,y );
    a、12,10
    b、12,11
    c、11,10
    d、11,11

10、常数的书写格式决定了常数的类型和值,0x1011是( )。
    a、八进制整型常量
    b、字符常量
    c、十六进制整型常数
    d、二进制整型常数

11、c语言中,int型数据在内存中的存储形式是( )。
    a、ascii码
    b、原码
    c、反码
    d、补码

12、以下定义语句中正确的是( )。
    a、int a=b=0;
    b、char a=65 1,b=′b′;
    c、float a=1,b=a,c=b;
    d、double a=0.0;b=1.1;

13、以下标识符中,不能作为合法的c用户定义标识符的是( )。
    a、a3_b3
    b、void
    c、_123
    d、i

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

15、若有int a=31,则 a *1/2的值是( )。
    a、15.5
    b、16
    c、23
    d、15

16、以下关于算法叙述错误的是( )。
    a、算法可以用伪代码、流程图等多种形式来描述
    b、一个正确的算法必须有输入
    c、一个正确的算法必须有输出
    d、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码

17、关于c语言中数的表示,以下叙述正确的是( )。
    a、只有整型数在允许范围内能精确无误的表示,实型数会有误差
    b、只要在在允许范围内整型和实型都能精确表示
    c、只有实型数在允许范围内能精确无误的表示,整型数会有误差
    d、只有八进制表示的数在不会有误差

18、设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(  )。
    a、b=(float)(1/a)
    b、b=1/(float)a
    c、b=1/(a*1.0)
    d、b=1.0/2

19、下面( )表达式的值为4。
    a、11/3
    b、12.0/3
    c、(float)11/3
    d、(int)(11.0/3 0.5)

20、若变量均已正确定义并赋值,以下合法的c语言赋值语句是( )。
    a、x=y==5;
    b、x=n%2.5;
    c、x n=i;
    d、x=5=4 1;

顺序结构程序设计

输入函数-scanf随堂测验

1、有以下程序 #include void main() { int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); } 若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b。则应该输入( )。
    a、12a34b
    b、12 a34 b
    c、12a 34 b
    d、12 a 34 b

输出函数 -printf随堂测验

1、有如下程序段:int x=12; double y=3.141593; printf("%d%7.5f",x,y); 则输出的结果是( )。
    a、123.141593
    b、123.14159
    c、12 3.14159
    d、12,3.141593

顺序结构程序设计-单元测试

1、有以下程序: #include void main() { int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); } 若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b。则应该输入( )。
    a、12a34b
    b、12 a34 b
    c、12a 34 b
    d、12 a 34 b

2、int num; scanf("num=%d",&num); 如果想给num赋值5,应该如何输入?( )
    a、"5"
    b、5
    c、num=5
    d、以上都不正确

3、有如下程序段: int x=12; double y=3.141593; printf("%d%7.5f",x,y); 则输出的结果是( )。
    a、123.141593
    b、123.14159
    c、12 3.14159
    d、12,3.141593

4、有以下程序段 char ch; int k; ch='a'; k=12; printf("%c,%d,",ch,ch,k); printf("k=%d \n",k); 已知字符a的ascii码值为97,则执行上述程序段后输出结果是( )。
    a、因变量类型与格式描述符的类型不匹配输出无定值
    b、输出项与格式描述符个数不符,输出为零值或不定值
    c、a,97,12k=12
    d、a,97,k=12

5、下列格式符中,可以用于以八进制形式输出整数的是( )。
    a、%d
    b、�
    c、%o
    d、

6、若x是int型变量,y是float型变量,所用的scanf调用语句格式为: scanf("x=%d,%f",&x,&y); 则为了将数据10和66.6分别赋给x和y,正确的输入应是( )。
    a、x=10,66.6<回车>
    b、10 66.6<回车>
    c、10,66.6<回车>
    d、x=10<回车>66.6<回车>

7、使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值([ ]代表空格),正确的输入是( )。
    a、1.25,2.4
    b、1.25[ ]2.4
    c、x=1.25,y=2.4
    d、x=1.25[ ]y=2.4

8、若变量已正确说明为float类型,要通过语句 scanf("%f %f %f ",&a,&b,&c); 给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是( )。
    a、10<回车>22<回车>33<回车>
    b、10.0,22.0,33.0<回车>
    c、10.0<回车>22.0 33.0<回车>
    d、10 22<回车>33<回车>

9、设有以下语句 char ch1,ch2; scanf("%c%c",&ch1,&ch2); 若要为变量ch1和ch2分别输入字符a和b,正确的输入形式应该是( )。
    a、a和b之间用逗号间隔
    b、a和b之间不能有任何间隔符
    c、a和b之间可以用回车间隔
    d、a和b之间用空格间隔

10、下面输入语句中,正确的是( )。
    a、scanf("a=b=%d",&a,&b);
    b、scanf("%d,%d",&a,&b);
    c、scanf("%c",c);
    d、scanf("%d %d\n",f1,f2);

选择结构程序设计

关系运算符和关系表达式随堂测验

1、#include void main(){ int x=20,y=50; printf("%d\n",x==y); printf("%d\n",x=y); } 以上程序运行的结果是( )。
    a、0 50
    b、0 0
    c、50 50
    d、程序错误无法运行

逻辑运算符与逻辑表达式随堂测验

1、若有定义语句:int k1=10,k2=20,x=10,y=10;,执行表达式(x=k1>k2)&&(y=k2>k1)后,x和y的值分别为( )。
    a、0,10
    b、0,1
    c、10,1
    d、10,10

if-else语句随堂测验

1、编写程序实现以下功能:任意输入一个字母,判断其大小写。 #include void main(){ char x; printf("请输入一个字母:"); scanf("%c",&x); if( ) printf("小写字母\n"); else printf("大写字母\n"); } 在划线处应该填写以下( )内容。
    a、(x>="a")&&(x<="z")
    b、(x>=a)&&(x<= z)
    c、(x>='a')&&(x<= 'z')
    d、以上选项都不对

2、编写程序实现以下功能:任意输入一个整数,判断其正负。 #include void main(){ int x; printf("input x:"); scanf("%d",&x); if( ) printf("%d为正数\n",x); if( ) printf("%d为负数\n",x); } 在划线处应该填入以下( )内容。
    a、x>0 else
    b、x>0 x<0
    c、x<0 x=>0
    d、以上选项都不正确

if语句的嵌套随堂测验

1、以下程序实现以下功能:从键盘任意输入三个整数,求最大值。 #include void main(){ int a,b,c; printf("input a,b,c:"); scanf(" ",&a,&b,&c); if(a>b) { if( ) printf("最大值为:%d\n",a); else printf("最大值为:%d\n",c); } else { if( ) printf("最大值为:%d\n",b); else printf("最大值为:%d\n",c); } } 在划线处填上正确选项( )。
    a、%d%d%d,a>b,b>c
    b、%c%c%c,a>c,b>c
    c、%d%d%d,a>c,b>c
    d、以上都不正确

switch多分支选择结构随堂测验

1、# include void main() { int a = 2; switch(a > 5) { case 0: printf("this is 0\n"); break; case 1: printf("this is 1\n"); break; case 2: printf("this is 2\n"); break; default: printf("this is default\n"); } } 以上程序运行的结果是( )。
    a、this is 2
    b、this is 0
    c、this is 1
    d、this is default

选择结构程序设计-单元测试

1、判断char型变量ch为数字的正确表达式是( )。
    a、ch>="0" && ch<="9"
    b、'0'≤ch≤'9'
    c、ch>='0'||ch<='9'
    d、ch>='0' && ch<='9'

2、下面哪个表达式在a为奇数时结果为假?
    a、a%2==1
    b、!(a%2==0)
    c、!(a%2)
    d、a%2

3、有条件表达式 (exp)?a :b--,则以下表达式中能完全等价于表达式(exp)的是( )。
    a、(exp==0)
    b、(exp!=0)
    c、(exp==1)
    d、(exp!=1)

4、设有说明"int x=1,y=1,z=1,c;",执行语句"c=--x&&--y||--z;"后,x、y、z的值分别为( )。
    a、0、1、1
    b、0、0、1
    c、1、0、1
    d、0、1、0

5、c语言中,关系表达式和逻辑表达式的值是( )。
    a、0
    b、0或1
    c、1
    d、't'或'f'

6、已知int i=10;执行表达式"i||(i=12)"后i的值是( )。
    a、10
    b、1
    c、12
    d、0

7、执行下列程序段后,变量i的值是( )。 int i=10; switch(i) { case 9:i =1; case 10:i =1; case 11:i =1; default:i =1; }
    a、13
    b、12
    c、11
    d、14

8、读下列程序:void 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\n",a,b); } 输出结果是( )。
    a、a=2,b=1
    b、a=1,b=1
    c、a=1,b=0
    d、a=2,b=2

9、分析以下程序, 下列说法正确的是( )。void main() { int x=0,a=0,b=0; if(x=a b) printf("tttt\n"); else printf("kkkk\n"); }
    a、有语法错,不能通过编译
    b、通过编译,但不能连接
    c、输出tttt
    d、输出kkkk

10、若变量已正确定义,有以下程序段: int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d,%d,%d\n",a,b,c); 其输出结果是( )。
    a、程序段有语法错
    b、3,5,3
    c、3,5,5
    d、3,5,7

11、下列程序段执行后输出结果为( )。 int i=-1; if(i<=0) printf("****\n"); else printf("%%%%\n");
    a、****c
    b、%%%%
    c、%%%%c
    d、****

12、有如下程序: main() { float x=2.0,y; if(x<0.0)y=0.0; else if(x>10.0)y=1.0/x; else y=1.0; printf("%f\n",y); } 该程序的输出结果是( )。
    a、0.000000
    b、0.250000
    c、0.500000
    d、1.000000

13、有如下程序: void main() { int a=2,b=-1,c=2; if(a<b) if(b<0)c=0; else c ; printf(″%d\n″,c); } 该程序的输出结果是( )。
    a、0
    b、1
    c、2
    d、3

14、与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是( )。
    a、if(a>b){if(c>d)x = 1;else x = 2;}
    b、if(a>b){if(c>d)x = 1;}elsex = 2
    c、if((a>b) && (c>d)) x = 1;elsex = 2
    d、if(a<=b) x = 2;else if (c>d)x = 1

15、#include <stdio.h> void main() { int x=20,y=50; printf("%d\n",x==y); printf("%d\n",x=y); } 以上程序运行的结果是( )。
    a、0 50
    b、0 0
    c、50 50
    d、程序错误无法运行

循环结构程序设计

for循环随堂测验

1、以下程序解决猴子吃桃问题。问题描述:猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 #include void main(){ int d,s=1; for(d=10;d>1; _____) { ___________ ; } printf("第一天的桃子数:%d\n",s); }
    a、d ,s=(s-1)*2
    b、d-- , s=(s 1)*2
    c、d-- ,s=s*2
    d、d 2 ,s=(s-1)*2

2、编写程序求100-500之间所有能被13整除或者能被7整除的自然数并输出,要求每行输出6个数。 #include void main() { int i,count=0; for(i=100; i<500; i ) { if( ) { printf("%d\t",i); count ; if( ) printf("\n"); } } } 在划线处填上正确的选项( )。
    a、(i==0)&&(i%7==0),count%5=0
    b、(i==0)||(i%7==0),count%6=0
    c、(i==0)&&(i%7==0),count%5==0
    d、(i==0)||(i%7==0) ,count%6==0

while循环随堂测验

1、以下程序要解决水仙花数问题。所谓水仙花数,是指一个三位数abc,如果满足a^3 b^3 c^3=abc,则abc是水仙花数。 #include void main(){ int x=100,a,b,c; while( x<1000 ) a= ;//个位 b=x/10;//十位 c=x/100;//百位 if( )printf("%d是水仙花数\n",x); x ; } } 在划线处填上正确的选项( )。
    a、x/10 ,a*a*a b*b*b c*c*c==x
    b、x ,a*a*a b*b*b c*c*c==x
    c、x ,a*a*a b*b*b c*c*c=x
    d、x/10 ,x=a*a*a b*b*b c*c*c

do-while循环随堂测验

1、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?(12500粒麦子有一斤,亩产1500斤) 以下为解决上述问题的程序: #include void main(){ double ml=1,zml=1,ms; ////ml:每一格的麦子数,zml:总的麦子数,ms:需要多少亩地 int i=1; do{ ___________ ; ___________ ; i ; }while( i<=64 ) ms=zml/12500/1500; printf("需要%e亩地的麦子!\n",ms); } 在划线处填上正确的选项( )。
    a、zml =ml , ml=2*ml
    b、zml=ml , ml=2*ml
    c、ml=2*ml , zml =ml
    d、ml=2*ml , zml=ml

2、以下程序求1-2 3-4……-100=? #include void main(){ int s=0,i=1,flag=1; do{ _______________ ; _______________ ; i ; } while( i<=100 ) printf("结果:%d\n",s); } 在划线处填上正确的选项( )。
    a、s =i*flag ,flag=-flag
    b、flag=-flag ,s =i*flag
    c、s =i*flag ,flag
    d、s =i ,flag=-flag

循环嵌套随堂测验

1、打印乘法口诀表的程序如下: #include void main() { int i,j; for(i=1;i<10;i ) { for(j=1; _______ ; j ) { printf("%d*%d=%d\t",i,j, _______ ); } printf("\n"); } } 在划线处填上正确的选项( )。
    a、j < i j*j
    b、j<=i i*j
    c、j < i i*i
    d、j<=i j*j

break和continue语句随堂测验

1、以下程序实现以下功能:从键盘任意输入一些非0整数,计算所有正数的和并统计正数的个数。(0是结束标志) #include void main(){ int x,sum=0,count=0; while(1){ printf("input x:"); scanf("%d",&x); if(x==0) _________; if(x<0) _________; sum =x; count ; } printf("正数的个数:%d\t和:%d\n",count,sum); } 在划线处填上正确的选项( )。
    a、break , continue
    b、continue ,break
    c、break ,break
    d、continue ,continue

循环结构程序设计-单元测试

1、有以下程序: #include <stdio.h> void main() { char a,b,c; b='1'; c='a'; for(a=0;a<6;a ) { if(a%2) putchar(b a); else putchar(c a); } } 程序运行后输出的结果是( )。
    a、1b3d5f
    b、abcdfe
    c、a2c4e6
    d、123456

2、若k是int类型变量,且有以下for语句: for(k=-1;k<0;k ) printf("****\n"); 下面关于语句执行情况的叙述中正确的是( )。
    a、循环体执行一次
    b、循环体执行两次
    c、循环体一次也不执行
    d、构成无限循环

3、下述for循环语句,描述正确的是( )。 int i,k; for(i=0,k=-1;k=2;i ,k ) printf("* * * *");
    a、判断循环结束的条件非法
    b、是无限循环
    c、只循环一次
    d、一次也不循环

4、程序段如下,则以下说法中正确的是( )。 int k=-5; while(k=0) k=k 1;
    a、while循环执行5次
    b、循环体语句一次也不执行
    c、循环是无限循环
    d、循环体语句执行一次

5、有如下程序段,问while 循环执行的次数是( )。 int k=0; while(k=1) k ;
    a、无限次
    b、有语法错,不能执行
    c、一次也不执行
    d、执行1次

6、已知: int t=0; while (t=1) {...} 则以下叙述正确的是( )。
    a、循环控制表达式的值为0
    b、循环控制表达式的值为1
    c、循环控制表达式不合法
    d、以上说法都不对

7、针对以下程序段,说法正确的是( )。 int x=-1; do { x=x*x; }while (!x);
    a、是死循环
    b、循环执行二次
    c、循环执行一次
    d、有语法错误

8、下面程序的运行结果是( )。 int a=1,b=10; do { b-=a; a ; } while (b-->2); printf (“a=%d,b=%d\n”,a,b);
    a、a=4,b=2
    b、a=4,b=1
    c、a=3,b=2
    d、a=3,b=1;

9、以下程序段的输出结果是( )。 int x=3; do { printf("%d",x-=2); }while(!(--x));
    a、1
    b、10
    c、1-2
    d、无限循环

10、以下程序中循环体总的执行次数是( )。 int i,j; for(i=6;i>1;i--) for(j=0;j<i;j ) {……}
    a、20
    b、60
    c、15
    d、25

11、下列程序段执行后k值为( )。 int k=0,i,j; for(i=0;i<5;i ) for(j=0;j<3;j ) k=k 1 ;
    a、15
    b、3
    c、5
    d、8

12、下面程序的运行结果为( )。 void main() { int n; for(n=1;n<=10;n ) { if(n%3==0)continue; printf("%d",n); } }
    a、12457810
    b、369
    c、12
    d、12345678910

13、下列程序的输出结果是( )。 #include "stdio.h" void main() { int i,a=0,b=0; for(i=1;i<10;i ) { if(i%2==0) { a ; continue; } b ; } printf("a=%d,b=%d",a,b); }
    a、a=4,b=4
    b、a=4,b=5
    c、a=5,b=4
    d、a=5,b=5

14、在c语言中,错误的语句是( )。
    a、a=b=c;
    b、;
    c、break
    d、b=3*5,a*=4;

数组

一维数组的定义与初始化随堂测验

1、以下( )不可以定义一个具有5个元素的整型数组,并给数组元素赋初值。
    a、int a[]={5,4,6};
    b、int b[]={4,0,5,0,0};
    c、int a[5]={5,4,6,7,5};
    d、int a[5]={5,7,5};

一维数组元素的引用与输入输出随堂测验

1、编写程序求斐波那契(fibonacci)数列的前20项并输出。fibonacci数列的递推公式为:fn=fn-1 fn-2,其中f1=f2=1。 程序如下: #include < stdio.h > void main(){ int a[20],i; _______=1; a[1]=1; for(i=2;i<20; i ) a[i]=________ ; } for(i=0;i<20; i ) printf("%d\t",a[i]); } } 在划线处填上正确选项( )。
    a、a[19],a[i-1] a[i-2]
    b、a[0],a[i] a[i-1]
    c、a[0],a[i-1] a[i-2]
    d、以上都不正确

一维数组作为函数参数随堂测验

1、以下程序完成的功能是求一个整型数组中所有元素的平均值。并要求求平均值的功能由一个函数完成。 #include < stdio.h > _____________ ; void main(){ int a[4]={3,4,3,7}; float re; re=ave(a,4); printf("平均值:%f\n",re); } float ave(int a[],int n){ int sum=0,i; float av; for(i=0;i    a、float ave(int,int),(float)sum/n
    b、float ave(int [],int ),(float)sum/n
    c、float ave(int [],int ),sum/n
    d、以上均不正确

一维数组元素的查找随堂测验

1、定义一个一维数组用来存放全班同学的总分(总分满分为500,每个同学的成绩随机产生),以下程序完成的功能是求全班同学的最高分、最低分与平均分。 #include < stdio.h > #include < stdlib.h > #include < time.h > void main() { int i,sc[20],max,min,sum=0; float ave; srand((int)time(null)); max=0; min=500; for(i=0;i<20;i ) { sc[i]=(int)(rand()p0); sum =sc[i]; if( ______ ) max=sc[i]; if( ______ ) min=sc[i]; } ave=sum/20.0; printf("最高分:%d,最低分:%d,平均分:%f\n",max,min,ave); } 在划线处填上正确的选项( )。
    a、maxsc[i]
    b、max>sc[i],min
    c、min>sc[i], max
    d、max>sc[i],min
一维数组元素的极值查找随堂测验

1、查找一维数组元素的最大值或最小值时,能否同时进行?
    a、不可以
    b、可以
    c、不确定
    d、看情况

冒泡法排序随堂测验

1、定义一个一维数组用来存放全班同学的总分(总分满分为500,每个同学的成绩随机产生),以下程序的功能是对全班同学的成绩排名。 #include < stdio.h > #include < stdlib.h > #include void main() { int i,j,sc[20],x; srand((int)time(null)); for(i=0;i<20;i ) sc[i]=(int)(rand()p0); for(i=1;i<20;i ) for(j=1;j< ______ ; j ) if( _______ ) { x=sc[j-1]; sc[j-1]=sc[j]; sc[j]=x; } for(i=0;i<20;i ) printf("%d\t",sc[i]); printf("\n"); } 在划线处填上正确的选项( )。
    a、i,sc[j-1]>sc[j]
    b、20-i,sc[j-1]>sc[j]
    c、20,sc[j-1]>sc[j]
    d、20-i,sc[i-1]>sc[i]

二维数组的定义与初始化随堂测验

1、以下数组定义中错误的是( )。
    a、int x[ ][3]=;
    b、int x[2][3]={{1,2},{3,4},{5,6}};
    c、int x[][3]={{1,2,3},{4,5,6}};
    d、int x[2][3]={1,2,3,4,5,6};

二维数组的遍历随堂测验

1、有以下程序 #include < stdio.h > void main() { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i ) for(j=i;j<3;j ) printf(“%d”,a[i][j]); printf(“\n”); } 程序运行结果的是( )。
    a、123789
    b、123456789
    c、123569
    d、123457

字符串的存储随堂测验

1、字符串“c program!”在的长度是多少?在内存中存放时占用几个字节? 以下( )是正确的。
    a、10,10
    b、10,11
    c、11,11
    d、以上都不正确

字符串的输入输出和常用函数随堂测验

1、有以下程序 #include #include void main() { char x[ ]="string"; x[0]=0;x[1]='\0';x[2]='0'; printf("%d %d\n",sizeof(x),strlen(x)); } 程序运行后的输出结果是( )。
    a、0,0
    b、7,7
    c、7,0
    d、0,7

数组-单元测试

1、以下不正确的定义语句是( )。
    a、double x[5]={2.0,4.0,6.0,8.0,10.0};
    b、int y[5]={0,1,3,5,7,9};
    c、char c1[]={′1′,′2′,′3′,′4′,′5′};
    d、char c2[]={′x10′, ′xa′, ′x8′};

2、以下能正确定义一维数组的选项是( )。
    a、int a[5]={0,1,2,3,4,5};
    b、char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′′};
    c、char a={′a′,′b′,′c′};
    d、int a[5]="0123";

3、以下关于数组的描述正确的是( )。
    a、数组的大小是固定的,但可以有不同的类型的数组元素
    b、数组的大小是可变的,但所有数组元素的类型必须相同
    c、数组的大小是固定的,但所有数组元素的类型必须相同
    d、数组的大小是可变的,但可以有不同的类型的数组元素

4、对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};
    a、将5个初值依次赋给a[1]至a[5]
    b、将5个初值依次赋给a[0]至a[4]
    c、将5个初值依次赋给a[6]至a[10]
    d、因为数组长度与初值的个数不相同,所以此语句不正确

5、以下能对一维数组a进行初始化的语句是 ( )。
    a、int a[5]=(0,1,2,3,4,) ;
    b、int a(5)={} ;
    c、int a[3]={0,1,2} ;
    d、int a{5}={10*1};

6、已知函数fun的定义如下: void fun(int x[],int y) { int k; for(k=0;k<y;k ) x[k] =y; } 若main函数中有声明int a[10]={10};及调用fun函数的语句,则正确的fun函数调用形式是( )。
    a、fun(a[],a[0]);
    b、fun(a[0],a[0]);
    c、fun(&a[0],a[0]);
    d、fun(a[0],&a[0]);

7、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是( )。 #include <sthio.h> #define n 5 viod fun(int x[n]) { int m; for(m=n-1;m>=0;m--) scanf(“%d\n”, ); }
    a、&x[ m]
    b、&x[m 1]
    c、x (m )
    d、x m

8、若用数组名作为函数调用的实参,传递给形参的是( )。
    a、数组的首地址
    b、数组第一个元素的值
    c、数组中全部元素的值
    d、数组中元素的个数

9、读下列程序: int f(int b[], int n) { int i,r=1; for(i=0; i<=n; i ) r=r*b[i]; return r; } void main() { int x, a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 输出结果是( )。
    a、720
    b、120
    c、24
    d、6

10、若有定义:int b[3][4]=;则下述正确的是( ) 。
    a、此定义语句不正确
    b、没有元素可得初值0
    c、数组b中各元素均为0
    d、数组b中各元素可得初值但值不一定为0

11、若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。
    a、t[2][4]
    b、t[5][0]
    c、t[0][0]
    d、t[0,0]

12、在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。
    a、4
    b、1
    c、2
    d、5

13、以下错误的定义语句是( )。
    a、int x[][3]={{0},{1},{1,2,3}};
    b、int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
    c、int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
    d、int x[][3]={1,2,3,4};

14、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为 ( )。
    a、2
    b、3
    c、4
    d、无确定值

15、若有以下数组说明,如果i=10;则a[a[i]]元素数值是(  )。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
    a、10
    b、9
    c、6
    d、5

16、已知:int a[10]; 则对a数组元素的正确引用是( )。
    a、a[10]
    b、a[3.5]
    c、a(5)
    d、a[0]

17、在c语言中引用数组元素时,其数组下标的数据类型允许是( )。
    a、整型常量
    b、整型表达式
    c、整型常量或整型表达式
    d、任何类型的表达式

18、有以下程序: void main( ) { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i ) for(j=0;j<=i;j ) s =a[i][j]; printf(“%d\n”,s); } 该程序的输出结果是( )。
    a、18
    b、19
    c、20
    d、21

19、有以下程序: #include<string.h> #include<stdio.h> void main() { char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′}; printf("%d%d\n",strlen(p),strlen(q)); } 以下叙述中正确的是( )。
    a、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
    b、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
    c、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
    d、由于p和q数组中都没有字符串结束符,故长度都不能确定

20、有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是( )。
    a、gets(&s[0]);
    b、scanf("%s",s 1);
    c、gets(s);
    d、scanf("%s",s[1]);

21、对字符串"boy"进行完整赋值的操作是( )。
    a、char s[3] = {'b','o','y'};
    b、char s[] = "boy";
    c、char s[3] = {"boy"};
    d、char s[3]; s="boy";

22、在c语言中,以( )作为字符串结束标志。
    a、'\n'
    b、' '
    c、'0'
    d、'\0'

23、下面程序用于输出数组中的最大值,请在空白处填写正确的语句。 void main() { int a[5]={3,2,5,6,4},*p,*s; for(p=a,s=a;p-a<10;p ) if( ________ ) s=p; printf(“max is %d”,*s); }
    a、s<p
    b、*s<p
    c、s<*p
    d、*s<*p

24、字符串"\\\"123\"\\"的长度是________________。
    a、5
    b、6
    c、7
    d、8

函数的应用

函数的定义随堂测验

1、以下函数的功能是求矩形的面积 ____ add(int a,int b){ int c; c=a*b; return c; } 在划线处填上正确的选项( )。
    a、double
    b、void
    c、int
    d、以上都不正确

函数的声明以及调用随堂测验

1、定义一个函数,求圆的周长。在主函数中输入圆的半径,通过调用这个函数,求出圆的周长,并将结果输出。 程序如下: #include #define pi 3.14 double area(int); double length(int); void main(){ int r; double s; printf("input r:"); scanf("%d",&r); s=_______ ; printf("周长:%lf\n",s); } double length(int r){ double i; i=2*pi*r; _________ ; } 在划线处填上正确的选项( )。
    a、length(s) , return i
    b、2*pi*r ,return
    c、length() ,return
    d、length(r) ,return i

函数调用参数传递与函数调用方式随堂测验

1、#include void fun(int p) { int d=2; p=d ; printf("%d",p); } main() { int a=1; fun(a); printf("%d\n",a); } 程序运行结果为( )。
    a、11
    b、21
    c、22
    d、以上结果都不正确

函数类型以及函数使用的一般过程随堂测验

1、定义一个函数,输出n个“*”,在主函数中调用它3次。 程序如下: #include void display(int); void main() { display(6); display(7); display(8); } void display(______) { int i; for(i=1;i< n;i ) printf(" * "); printf("\n"); } 在划线处填上正确的选项( )。
    a、int n
    b、n
    c、不用填写任何内容
    d、double n

递归函数随堂测验

1、#include fun(int x) { if(x/2>0) fun(x/2); printf("%d ",x); } void main() { fun(6); printf("\n"); } 以上程序运行后的输出结果为( )。
    a、6 3 1
    b、1 3 6
    c、6 5 4
    d、4 5 6

局部变量与全局变量随堂测验

1、有以下程序 #include int a=5; void fun(int b) { int a=10; a =b; printf("%d",a); } void main() { int c=20; fun(c); a =c; printf("%d\n",a); } 以上程序运行后的输出结果是( )。
    a、525
    b、1545
    c、2530
    d、3025

静态变量随堂测验

1、有以下程序: #include int fun() { static int x=1; x =1; return x; } void main() { int i,s=1; for(i=1;i<=5;i ) s =fun(); printf("%d\n",s); } 程序运行后的输出结果是( )。
    a、21
    b、11
    c、15
    d、以上结果都不正确

函数的应用-单元测试

1、下述函数定义形式正确的是( )。
    a、int f(int x; int y)
    b、int f(int x,y)
    c、int f(int x, int y)
    d、int f(x,y: int)

2、以下函数值的类型是( )。 fun (float x) { float y; y= 3*x-4; return y; }
    a、int
    b、不确定
    c、void
    d、float

3、以下说法正确的是( )。
    a、如果函数的类型与返回值类型不一致,以函数类型为准
    b、定义函数时,形参的类型说明可以放在函数体内
    c、return后边的值不能为表达式
    d、不加类型说明的函数,一律按void来处理

4、在定义任何一个函数时,下列选项中不可缺少的是( )。
    a、函数名之前的数据类型
    b、函数名之后的一对圆括号
    c、形式参数声明
    d、函数体中的语句

5、在c语言中,函数的数据类型是指( )。
    a、函数返回值的数据类型
    b、函数形参的数据类型
    c、调用该函数时的实参的数据类型
    d、任意指定的数据类型

6、定义函数时,缺省函数的类型声明,则函数类型取缺省类型( )。
    a、void
    b、char
    c、float
    d、int

7、int fun(int k) { if (k<1) return 0; else if(k==1) return 1; else return fun(k-1) 1; } 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。
    a、1
    b、2
    c、3
    d、4

8、#include <stdio.h> int f(int t[],int n); void main() { int a[4]={1,2,3,4},s; s=f(a,4); printf(“%d\n”,s); } int f(int t[],int n) { if(n>0) return t[n-1] f(t,n-1); else return 0; } 程序运行后的输出结果是( )。
    a、4
    b、10
    c、14
    d、6

9、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数funa,则 ( )。
    a、称为函数的直接递归调用
    b、称为函数的间接递归调用
    c、称为函数的循环调用
    d、c语言中不允许这样的递归调用

10、关于函数参数,说法正确的是( )。
    a、实参与其对应的形参各自占用独立的内存单元
    b、实参与其对应的形参共同占用一个内存单元
    c、只有当实参和形参同名时才占用同一个内存单元
    d、形参是虚拟的,不占用内存单元

11、以下程序的输出结果是( )。 fun(int x, int y, int z) { z=x*x y*y; } void main() { int a=31; fun(5,2,a); printf("%d",a); }
    a、0
    b、29
    c、31
    d、无定值

12、c语言规定,简单变量做实参时,它相对应形参之间的数据传递方式是( )。
    a、地址传递
    b、单向值传递
    c、由实参传给形参,再由形参传回给实参
    d、由用户指定传递方式

13、如果在一个函数中的复合语句中定义了一个变量,则该变量( )。
    a、只在该复合语句中有效
    b、在该函数中有效
    c、在本程序范围内均有效
    d、为非法变量

14、在一个c语言源程序文件中所定义的全局变量,其作用域为( )。
    a、所在文件的全部范围
    b、所在程序的全部范围
    c、所在函数的全部范围
    d、由具体定义位置和extem说明来决定范围

15、以下程序运行后,输出结果是( )。 func (int a,int b) { static int m=0 ,i=2; i =m 1; m=i a b ; return(m); } void main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); }
    a、8,15
    b、8,16
    c、8,17
    d、8,8

16、设有下列程序段: static char b=2; void y() { static float d=4;… } int a=1; void x() { int c=3;… } 关于程序段中各变量的属性,以下叙述中错误的是( )。
    a、a是全局变量,函数x可以访问,函数y不能访问
    b、b是全局变量,函数x和函数y都可以访问
    c、c是动态变量,函数x可访问,函数y不可访问
    d、d是静态变量,函数x和函数y都可以访问

17、未指定存储类别的变量,其隐含的存储类别为( )。
    a、auto
    b、static
    c、extern
    d、register

18、在c语言中,表示静态存储类别的关键字是( )。
    a、auto
    b、register
    c、static
    d、extern

19、有以下程序: #include <stdio.h> int abc(int u,int v); void main () { int a=24,b=16,c; c=abc(a,b); printf(“%d\n”,c); } int abc(int u,int v) { int w; while(v) { w=u%v; u=v; v=w } return u; } 输出结果是( )。
    a、6
    b、7
    c、8
    d、9

20、有如下程序: #include <stdio.h> int func(int a,int b) { return(a b); } void main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\n”,r); } 该程序的输出的结果是( )。
    a、12
    b、13
    c、14
    d、15

21、在函数调用时,以下说法正确的是(  )。
    a、函数调用后必须带回返回值
    b、实际参数和形式参数可以同名
    c、函数间的数据传递不可以使用全局变量
    d、主调函数和被调函数总是在同一个文件里

22、已知函数f的定义如下: int f(int a,int b) { if(a<b) return(a,b); else return(b,a); } 则该函数使用f(2,3)进行调用时返回的值是 ( )。
    a、2
    b、3
    c、2和3
    d、3和2

23、以下函数调用语句中实参的个数为( )。exce((v1,v2),(v3,v4,v5),v6);
    a、3
    b、4
    c、5
    d、6

24、有以下函数定义: 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);

25、在c语言程序中,以下描述正确的是( )。
    a、函数的定义可以嵌套,但函数的调用不可以嵌套
    b、函数的定义不可以嵌套,但函数的调用可以嵌套
    c、函数的定义和函数的调用均不可以嵌套
    d、函数的定义和函数的调用均可以嵌套

指针

指针的概念、定义与引用随堂测验

1、以下下程序运行结果是( )。 #include void main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p ; p=q ; q=r ; printf(“%d,%d,%d,%d\n”,m,n,*p,*q) ; }
    a、1,2,1,2
    b、2,1,1,2
    c、2,1,2,1
    d、1,2,2,1

指针的运算随堂测验

1、假设两个指针变量指向了一连片连续的存储空间,两个指针做减法,结果会是____
    a、地址
    b、整数
    c、字符
    d、错误,不能做运算

指针作函数参数随堂测验

1、设计一个函数用来交换两个变量的值。并在主函数调用它。 #include ________ ; void main(){ int x=5,y=10; _________ ;//调用函数 printf("交换后:x=%d,y=%d\n",x,y); } void swap(int *p1,int *p2){ int x; x=*p1; *p1=*p2; *p2=x; } 在划线处填上正确的选项( )。
    a、void swap(int*,int*),swap(&x,&y)
    b、void swap(int,int),swap(&x,&y)
    c、void swap(int*,int*),swap(x,y)
    d、void swap(int,int),swap(x,y)

用指针访问一维数组随堂测验

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

数组名作为函数参数随堂测验

1、设计一个函数,求一个数组中的最大值和最小值。并在主函数中调用它。 #include void fun1(int [ ],int,int *,int *); void main(){ int a[5]={45,22,54,7,12}; int max,min; _________ ; printf("max=%d,min=%d\n",max,min); } void fun1(int a[],int n,int *max,int *min){ int i; *max=a[0]; *min=a[0]; for(i=1;i    a、fun1(a,5,max,min),*maxa[i]
    b、fun1(a,5,&max,&min),maxa[i]
    c、fun1(a,5,&max,&min),*max>a[i],*min    d、fun1(a,5,&max,&min),*maxa[i]

用指针操作二维数组随堂测验

1、以下程序利用指向二维数组的指针来遍历数组中的元素。 #include void main(){ int a[3][4]={{3,4,3,6},{1,2,7,8},{8,5,2,1}},*p; int i,j; p=&a[0][0]; for(i=0;i<3; i ) for(j=0;j<4; j ) printf("%d\t", _______ ); } printf("\n"); } } 在划线处填上正确的选项( )。
    a、*(p )
    b、*( p)
    c、a
    d、以上都不正确

指针数组与行指针随堂测验

1、指针数组包含几个指针?行指针包含几个指针?
    a、1个,多个
    b、多个,1个
    c、1个,1个
    d、多个,多个

使用指针操作字符串随堂测验

1、若有定义语句:char *s1=”ok”;*s2=”ok”;,以下选项中,能够输出“ok”的语句是 ( )。
    a、if(strcmp(s1,s2)==0) puts(s1);
    b、if(strcmp(s1,s2)!=0) puts(s2);
    c、if(strcmp(s1,s2)==1) puts(s1);
    d、if(strcmp(s1,s2)!=0) puts(s1);

2、有以下程序(注:字符a的ascii码值为97) #include void main() { char *s={"abc"}; do { printf("%d",*s); s; }while(*s); } 程序运行后的结果是( )。
    a、999
    b、987
    c、789
    d、以上结果都不正确

指针-单元测试

1、若有定义语句: int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是( )。
    a、p=a
    b、q[i]=a[i]
    c、p=a[i]
    d、p=&a[2][1]

2、有定义语句:int k[2][3],*pk[3];则以下语句正确的是( )。
    a、pk=k;
    b、pk[0]=&k[1][2];
    c、pk=k[0];
    d、pk[1]=k;

3、下列程序执行后的输出结果是( )。 void main() { int a[3][3], *p,i; p=&a[0][0]; for(i=1; i<9; i )p[i]=i 1; printf("%d\n",a[1][2]); }
    a、3
    b、6
    c、9
    d、随机数

4、程序如下: void main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i )p[i]=ch[i]; for(i=0;i<2;i ) for(j=0;p[i][j]>'\0';j =2) s=10*s p[i][j]-'0'; printf("%d\n",s); } 该程序的输出结果是( )。
    a、69825
    b、63825
    c、6385
    d、693825

5、设有如下的程序段: char str[ ]="china"; char *ptr ; ptr=str; 执行上面的程序段后 ,*(ptr 5)的值为( )。
    a、'a'
    b、'\0'
    c、不确定的值
    d、'a'的地址

6、下面程序段的运行结果是( )。 char str[]="abc",*p=str; printf("%d\n",*(p 3));
    a、67
    b、0
    c、字符'c'的地址
    d、字符'c'

7、变量s的定义为: char *s = "hello world!" ; 要使用变量p指向s所指向的同一个字符串,则应选取( )。
    a、char *p=s;
    b、char *p=&s;
    c、char *p ; p=*s;
    d、char *p;p=&s;

8、下列不正确的定义是(  )。
    a、int *p=&i,i;
    b、int *p,i;
    c、int i,*p=&i;
    d、int i,*p;

9、语句int *p;说明了( )。
    a、p是指向一维数组的指针
    b、p是指向函数的指针,该函数返回一int型数据
    c、p是指向int型数据的指针
    d、p是函数名,该函数返回一指向int型数据的指针

10、若有说明:int i,j=6,*p; p=&i;则与i=j等价的语句是( )。
    a、i=*p;
    b、*p=j;
    c、j=i;
    d、i=**p;

11、若有说明:int n=2,*p=&n,*q=p; 则以下非法的赋值语句是: (  )。
    a、p=q;
    b、*p=*q;
    c、n=*q;
    d、p=n

12、有语句:int a[10]; 则( )是对指针变量p的正确定义和初始化。
    a、int p=*a;
    b、int *p=a;
    c、int p=&a;
    d、int *p=&a;

13、对于类型相同的两个指针变量之间,不能进行的运算是( )。
    a、<
    b、=
    c、
    d、-

14、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )。
    a、k=*p1 *p2;
    b、p2=k;
    c、p1=p2;
    d、k=*p1*(*p2);

15、以下程序运行后,输出结果是( )。 void fun(int *x) { printf("%d\n", *x); } void main() { int a=25; fun(&a); }
    a、23
    b、24
    c、25
    d、26

16、若有函数: viod fun(double a[], int *n) {………} 以下叙述中正确的是( )。
    a、调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
    b、形参a和n都是指针变量
    c、形参a是一个数组名,n是指针变量
    d、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

17、已定义以下函数 fun(char *p2, char *p1) { while((*p2=*p1)!='\0') { p1 ; p2 ; } } 函数的功能是( )。
    a、将p1所指字符串复制到p2所指内存空间
    b、将p1所指字符串的地址赋给指针p2
    c、对p1和p2两个指针所指字符串进行比较
    d、检查p1和p2两个指针所指字符串中是否有'\0'

18、有以下程序: void fun(char *c,int d) { *c=*c 1; d=d 1; printf("%c,%c,",*c,d); } void main() { char a='a',b='a'; fun(&b,a); printf("%c,%c\n",a,b); } 程序运行后的输出结果是( )。
    a、b,a,b,a
    b、a,b,a,b
    c、a,b,a,b
    d、b,b,a,b

19、有以下程序: void ss(char *s,char t) { while(*s) { if(*s==t) *s=t-′a′ ′a′; s ; } } void main() { char str1[100]="abcddfefdbd",c=′d′; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是( )。
    a、abcddefedbd
    b、abcddfefdbd
    c、abcaafefaba
    d、abcddfefdbd

20、若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是( )。
    a、a[p]
    b、p[a]
    c、*(p 2)
    d、p 2

21、若有以下声明语句: int a[10]={1,2,3,4,5,6,7,8,9,10} ,*p=a ; 则数值为3 的表达式是( )。
    a、*p 3
    b、*(p 3)
    c、*p =2
    d、p 2

22、gets函数的功能是( )。
    a、读取从键盘输入的一串不带空格的字符串
    b、读取从键盘输入的一串可以带空格的字符串
    c、读取从键盘输入的一串不带数字的字符串
    d、读取从键盘输入的一串只带字母的字符串

23、求字符串的长度,以下说法正确的是( )。
    a、使用strlen函数
    b、只能使用strlen函数
    c、使用strlength函数
    d、只能使用strlength函数

24、下面程序的输出结果是__________________。 void main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p 2)); }

25、有如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则访问数组中9这个元素的表达式是______________________。

结构体

结构体类型的声明随堂测验

1、定义一个结构体类型,用来描述学生信息,包括:姓名,学号,各科成绩等。 _____ { char name[10]; char sex; float chin; float eng; float math; }; 在划线处填上正确的选项( )。
    a、struct student
    b、struct
    c、student
    d、以上都不正确

结构体变量的定义与使用随堂测验

1、定义一个表示学生信息的结构体类型,包括姓名,性别,总分等成员。然后定义一个学生变量,把这个变量的成员全部输出。 #include struct student{ char name[10]; char sex; float sc; }; void main(){ ______ s1= {"zhangsan",'f',509}; printf("姓名:%s\t性别:%c\t总分: % f\n",s1.name,s1.sex,s1.sc); } 在划线处填上正确的选项 ( )
    a、student
    b、struct student
    c、struct
    d、以上都不正确

结构体数组随堂测验

1、定义一个表示学生信息的结构体类型,包括姓名,性别,总分等成员。然后定义一个包含有5个学生的数组,把这个数组中所有的学生信息输出。 #include struct student{ char name[10]; char sex; float sc; }; void main(){ _______ s[5]={ {"zhangsan",'f',509},{"lisi",'m',609},{"wang",'f',529},{"fang",'f',649}, {"zhang",'m',611}}; int i; for(i=0;i<5;i ) printf("姓名:%s\t性别:%c\t总分: % f\n", _____ ,s[i].sex,s[i].sc); } } 在划线处填上正确选项( )。
    a、student,s[i].name
    b、struct student,s.name
    c、struct ,s[i].name
    d、struct student,s[i].name

结构体-单元测试

1、定义一个结构体类型,用来描述学生信息,包括:姓名,学号,各科成绩等。 { char name[10]; char sex; float chin; float eng; float math; }; 在划线处填上正确的选项( )。
    a、struct student
    b、struct
    c、student
    d、以上都不正确

2、有以下说明语句: struct ex { int x ; float y; char z ; } example; 则下面的叙述中不正确的是( )。
    a、struct结构体类型的关键字
    b、example是结构体类型名
    c、x,y,z都是结构体成员名
    d、struct ex是结构体类型

3、typedef struct { int n; char ch[8]; } per; 则下面叙述中正确的是( )
    a、per 是结构体变量名
    b、per是结构体类型名
    c、typedef struct 是结构体类型
    d、struct 是结构体类型名

4、有以下程序: struct s { int x; int y; }data[2]={10,100,20,200}; void main() { struct s *p=data; printf("%d\n", (p->x)); } 程序运行后的输出结果是( )。
    a、10
    b、11
    c、20
    d、21

5、struct ord { int x,y; }dt[2]={1,2,3,4}; void main() { struct ord *p=dt; printf("%d,", (p->x)); printf("%d\n", (p->y)); } 程序运行后的输出结果是( )。
    a、1,2
    b、4,1
    c、3,4
    d、2,3

6、设有以下程序段 struct mp3 { char name[20]; char color; float price; }std,*ptr; ptr=&std; 若要引用结构体变量std中的color成员,写法错误的是( )。
    a、std.color
    b、ptr->color
    c、std->color
    d、(*ptr) .color

7、当用户定义一个结构体变量时,系统分配给它的内存为各成员所需内存的( )。
    a、和
    b、最大值
    c、不确定
    d、无关

8、若有定义: struct tp { float a; char class; }stu; 则对成员class的正确引用是( )。
    a、stu->class
    b、stu.class
    c、stu>class
    d、stu * class

文件操作

文件的读写操作随堂测验

1、有以下程序 #include void main() { file *fp; int k,n,i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w"); for(i=0;i<6;i ) fprintf(fp,"%d\n",a[i]); fclose(fp); fp=fopen("d2.dat","r"); for(i=0;i<3;i ) fscanf(fp,"%d%d",&k,&n); fclose(fp); printf("%d,%d\n",k,n); } 程序运行后的结果为( )。
    a、1,2
    b、3,4
    c、5,6
    d、以上都不正确

文件操作--单元测试

1、c语言中,数据文件的存取方式为( )。
    a、只能顺序存取
    b、只能随机存取(也叫直接存取)
    c、可以顺序存取和随机存取
    d、能从文件的开头进行存取

2、c语言可以处理的文件类型是( )。
    a、文本文件和数据文件
    b、文本文件和二进制文件
    c、数据文件和二进制文件
    d、数据代码文件

3、若fp是指向某文件的指针,且已读到该文件的末尾,则函数feof(fp)的返回值是( )。
    a、eof
    b、-1
    c、非0值
    d、null

4、以下函数不能用于向文件写入数据的是( )。
    a、ftell
    b、fwrite
    c、fputc
    d、fprintf

5、若用fopen()函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开方式是( )。
    a、"ab "
    b、"wb "
    c、"rb "
    d、"ab"

6、打开文件,操作完毕后用( )函数关闭它。
    a、fopen()
    b、open()
    c、fclose()
    d、close()

7、如果要打开c盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为( )。
    a、c:file\abc.dat
    b、c:\file\abc.dat
    c、"c:\file\abc.dat"
    d、"c:\\file\\abc.dat"

程序设计基础课程结课考试

结业考试第一部分

1、表达式 strlen(“hello”) 的值是( )。
    a、4
    b、5
    c、6
    d、7

2、在c程序中,若对函数类型未加说明,则函数的隐含类型为( )。
    a、int
    b、double
    c、void
    d、char

3、下列程序的输出结果是( )。   fun(int a, int b, int c)   { c =a*b; }   void main( )   { int c;    fun(2,3,c);    printf(“%d\n”,c);   }
    a、无法确定
    b、1
    c、6
    d、0

4、设变量定义为“int a, b;”,执行下列语句时,输入( ),则a和b的值都是10。 scanf("a=%d, b=%d",&a, &b);
    a、10 10
    b、10, 10
    c、a=10 b=10
    d、a=10, b=10

5、若变量已正确定义,表达式( )的值不是2。
    a、b=2/1
    b、(3>2)?2:3
    c、a==2
    d、a=5/3 1

6、( )把x、y定义成float类型变量,并赋同一初值3.14。
    a、float x, y=3.14;
    b、float x, y=2*3.14;
    c、float x=3.14, y=3.14;
    d、float x=y=3.14;

7、在 c 程序中,用( )表示逻辑值“真”
    a、1
    b、非 0 的数
    c、非 1 的数
    d、大于 0 的数

8、( )是不正确的字符常量。
    a、'n'
    b、'1'
    c、"a"
    d、'\n'

9、若变量已正确定义并赋值,表达式( )不符合c语言语法。
    a、a*b/c
    b、3.14%2
    c、2, b
    d、a/b/c

10、( )是合法的用户自定义标识符。
    a、b-b
    b、float
    c、12student
    d、_isw

11、有以下程序: void main() { char ch[]="uvwxyz",*pc; pc=ch; printf("%c\n",*(pc 5) ); } 程序运行后的输出结果是 ( )。
    a、z
    b、0
    c、元素ch[5]地址
    d、字符y的地址

12、下面( )语句能实现strcpy(char *d, char *s)的串拷贝功能。
    a、while (*d = *s );
    b、while (*s = *d );
    c、while (*d == *s );
    d、while (*s == *d );

13、程序已有部分语句: int a=5,t=3,*p; p=&a; 对于指针变量p的使用,下面不正确的赋值语句是( )。
    a、t=*p;
    b、a=t;
    c、*p=&t
    d、*p=t;

14、struct { int nvalue; char szvalue [20]; } a; 请问sizeof(a)为( )。
    a、24
    b、20
    c、4
    d、21

15、以下程序的输出结果是 ( )。 #define x 3 2 void main() { int a; a =x/x;    printf("%d\n",a); }
    a、5
    b、6
    c、9
    d、1

16、当调用函数时,实参是一个数组名,则向函数传送的是( )。
    a、数组的长度
    b、数组的首地址
    c、数组每一个元素的地址
    d、数组每个元素中的值

17、有如下定义: struct person{char name[9]; int age;}; struct person class1[10]={"johu", 17,"paul", 19,"mary", 18,"adam",16}; 根据上述定义,能输出字母m的语句是( )。
    a、printf("%c\n",class1[3].mane);
    b、printf("%c\n",class1[3].name[1]);
    c、printf("%c\n",class1[2].name[1]);
    d、printf("%c\n",class1[2].name[0]);

18、有如下程序: int fib(int n) { if(n>2) return (fib(n-1) fib(n-2));    else return 2; } void main( ) { printf(“%d\n”,fib(3)); } 该程序的输出结果是( )。
    a、2
    b、4
    c、6
    d、8

19、有如下程序: int runc(int a,int b) { return(a b); } void main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%\d\n",r); } 该程序的输出的结果是( )。
    a、15
    b、13
    c、14
    d、12

20、若变量已正确定义,( )不能使指针p成为空指针。
    a、p=eof
    b、p=0
    c、p=’ ’
    d、p=null

21、下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:after swap 5, 3。 void swap( int *p, int *q ) { int t; t=*p; *p=*q; *q=t; } void main( ) { int a=3, b=5; swap(______________________) ;    printf("after swap %d, %d", a, b); }

22、下列程序段的输出是_____。 int *p, *q, k = 5 , j = 6 ; q = &k ; p = q ; q = &j ; printf("%d", *p);

23、下列程序段的输出是 。 #include <stdio.h> int f(int x) { static y=1; y ; x = y; return x; } void main() { int k; k=f(3); printf("%d,%d\n", k, f(k)); }

24、下列程序段的输出是_____。 void main() { int k , s = 0; for(k=1; k<5; k ) if(k % 2) s = k; else continue; printf("%d\n", s ); }

25、下列程序段的输出是_______。   #define x 5 2   printf("%d\n", x*x);

26、表示“x≥y≥z”的c语言表达式是_______。

27、下列程序段的输出是______。 printf("%.2f\n", 3.147);

28、下列程序的输出结果为_________________。 #include <stdio.h> void main() { int k; float s; for(k=0,s=0;k<7;k ) s =k/2; printf("%d,%.2f\n",k,s); }

结业考试第二部分

1、输入10个整数,找出其中的最大值、最小值,并求出这10个整数的平均值。完成下列代码中四个自定义函数的设计。 #include "stdio.h" #define n 10 void init_num(int *a,int len) {} int max_num(int *a,int len) {} int min_num(int *a,int len) {} float avg_num(int *a,int len) {} void main() { int a[n]; init_num(a , n); printf("max = %d\n",max_num(a,n)); printf("min = %d\n",min_num(a,n)); printf("average = %.2f\n",avg_num(a,n)); }

2、编写程序使用指针实现两个字符串的连接功能。 #include <stdio.h> void link(char *from,char *to ) { } void main() { char a[20]="hello"; char b[10]="beijing"; printf("\nstring a=%s\nstring b=%s\n",a,b); link(a,b); printf("\nstring a=%s\nstring b=%s\n",a,b); }

最新
2646
2281
1383
2433
1627
211
1976
2901
284
998
精选
2023年普惠与小微业务授信岗位准入资格考试题库搜题找答案用什么软件 1666
2041
【cicp】監獄警cha管理理论与实务(学习通)搜题找答案用什么软件 2481
1342
32-206:zctp-sdh 中兴传输售后认证搜题找答案用什么软件 2539
838
495
160
【参考】《全省消防救援队伍政治干部岗位练兵题库》搜题找答案用什么软件 781
2736
随机推荐
879
179
1983
227
1017
2432
2309
851
1385
1399
网站地图