100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > pintia计算机课程考试多选题 大学计算机基础与应用2(理)-中国大学mooc-题库零氪...

pintia计算机课程考试多选题 大学计算机基础与应用2(理)-中国大学mooc-题库零氪...

时间:2018-12-01 09:43:58

相关推荐

pintia计算机课程考试多选题 大学计算机基础与应用2(理)-中国大学mooc-题库零氪...

第一章 C语言简介

测验1

1、编写C程序时,main函数必不可少。

2、printf("\n"); 可实现换行

3、C的每条语句结束处必须用分号。

4、注释语句不影响程序的运行。

5、若使用printf输出结果,则必须在程序前添加#include

6、C程序中的标点符号(如分号;)必须用英文的标点符号。

第2章 C语言基础语法

测验2

1、合法的C语言标识符是( )

A、2a

B、sum

C、int

D、a*b

2、不合法的C语言标识符是 ( )。

A、_8_

B、j2_KEY

C、4d

D、Double

3、下列定义变量的语句中错误的是( )。

A、int x1;

B、float y1;

C、double z1;

D、Double a1;

4、在C语言中,要求运算数必须是整型的运算符是( )。

A、%

B、/

C、+

D、-

5、下面( )语句正确地描述了计算公式

A、y = ax*x*x/x – b;

B、y = ax*x*x/(x – b);

C、y = (a*x*x*x)/(x – b);

D、y = a*x*x*x/x – b;

6、下面( )是合法的赋值语句 .

A、i=1;

B、i+1=5;

C、5=i;

D、i *3=i+1;

7、78%10的结果是( )。

A、78

B、8

C、7

D、10

8、i=1; 执行( )语句后,变量i的值不会发生变化。

A、i+5;

B、--i;

C、i=2*i;

D、i=6;

9、语句float x=3.0 ,y=4.0;下列表达式中y的值为9.0的是( )。

A、y/=x*27/4

B、y+=x+2.0

C、y-=x+0.8

D、y*=x-3.0

10、有关运算符的正确描述是( )

A、单目运算符优先级高于双目运算符

B、赋值运算符是左结合的

C、所有运算符都是左结合的

D、赋值号的运算优先级是最低的

11、下面( )语句正确地描述了方程

A、y = a * x * x * x + c;

B、y = a * x * x * (x + c);

C、y = (a * x * x * x) + c;

D、y = (a * x) * x * (x + c);

12、下面( )能完成变量a,b的值的交换。

A、t=a; a=b; b=t;

B、a=b; b=a;

C、a=b;

D、a=a+b; b=a-b; a=a-b;

13、( )可以使整型变量i的值加1 。

A、i++;

B、++i;

C、i=i+1;

D、i+=1;

第3章 格式化输入输出及简单的选择结构

测试3

1、能正确表示逻辑关系x<=y<=z的C语言表达式为( )

A、(x<=y)&&(y<=z)

B、(x<=y)AND(y<=z)

C、(x<=y<=z)

D、(x<=y)&(y<=z)

2、能正确表示逻辑关系“a大于等于10或a小于等于0”的C语言表达式是 ( )

A、a>=10 or a<=0

B、a>=0|a<=10

C、a>=10&& a<=0

D、a>=10‖a<=0

3、能正确表示逻辑关系“79

A、( X>79 ) && ( X<90 )

B、( X>79 )!=( X<90 )

C、79

D、(X>79 )||( X<90)

4、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是( )

A、10

B、a==11||a==12||a==13||a==14

C、a>10&&a<15

D、!(a<=10)&&!(a>=15)

5、设x,t均为int型变量,则执行语句“x=10; t=x&&x>10;”后,t的值为( )

A、值不确定

B、10

C、1

D、0

6、下面程序,运行后的输出结果是( ) #include int main() { int a=1, b = 3, c = 4; if(a

A、4,4,3

B、4,3,4

C、3,4,3

D、1,3,4

7、语法不正确的语句是( )

A、if (x>y);

B、if (x=y) {x++;y++;}

C、if (x==y) && (x!=0) x++;

D、if (x!=y) scanf ("%d", &x);

8、如果整型变量a,b,c的值分别为5,4,3,则语句if(a>b>c) c++; 执行后c的值是( )

A、5

B、4

C、3

D、2

9、如果整型变量a,b,c的值分别为3,4,5,则语句 if(a

A、3

B、4

C、5

D、6

10、运行以下程序,如果从键盘上输入5,则输出结果是( ) #include int main() { int x; scanf("%d", &x); if (x--< 5) printf("%d", x); }

A、3

B、4

C、5

D、无输出

11、C语言语句中,可以用来决定分支流程的表达式是( )

A、任意表达式

B、只能用逻辑表达式或关系表达式

C、只能用逻辑表达式

D、只能用关系表达式

12、int x=102,y=12; printf("%2d,%3d\n",x,y); 执行后输出结果是( )

A、10,012

B、02, 12

C、102, 12

D、102,120

13、设i是 int 型变量 ,j是 float 型变量 , 用下面的语句给这两个变量输入值: scanf("i=%d, j=%f",&i,&j); 为了把 10 和 2.5分别赋给 i 和 j, 则正确的输入为( )

A、10 2.5< 回车 >

B、i=10,j=2.5< 回车 >

C、10 < 回车 > 2.5< 回车 >

D、x=10 < 回车 > ,y=2.5< 回车 >

14、执行下面语句, int a =1,b=2,c=3; if(a>c) b =c; a=c; c=b; a,b,c的值分别为( )(用逗号分隔)

A、3,2,2

B、1,2,3

C、3,3,2

D、3,3,3

15、请选出正确的输入语句( )。

A、double f; scanf("%lf",&f);

B、float x,y; scanf("%f%f",x,y);

C、float x; scanf("%f\n",x);

D、double x; scanf("%f",&x);

16、在printf函数中,浮点型数据输出的格式控制符有( )。

A、%e

B、%d

C、%f

D、%g

17、下面程序中,( )可以输出变量a,b,c的最大值。

A、if(a>=b && a>=c ) printf( "最大值为%d\n",a); if(b>=a && b>=c) printf( "最大值为%d\n",b); if(c>=a && c>=b) printf( "最大值为%d\n",c);

B、max=a; if(b>max) max=b; if(c>max) max=c; printf( "最大值为%d\n",max);

C、if(a>b>c ) printf( "最大值为%d\n",a); if(b>a>c) printf( "最大值为%d\n",b); if(c>a>b) printf( "最大值为%d\n",c);

D、if(a>b) max=a; if(c>max) max=c; printf( "最大值为%d\n",max);

18、设a=1, b=2, c=3,关系表达式a+b>=c 的值是( )。

19、设a=1, b=2, c=3,逻辑表达式a && b && c的值是( )。

20、设a=1, b=2, c=3,逻辑表达式a || !b || !c的值是( )。

21、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于90,则输出“合格”。(有1个空,答案一行写一个,不要添加多余的空格) #include int main() { int x; printf("请输入分数(0-100): "); scanf("%d",&x); if(x<60) printf( "不及格\n"); if(x>90) printf( "优秀\n"); printf( "合格\n"); //注意分数在一个区间内,C语言中该如何描述 return 0; }

22、我国的邮政编码由六位阿拉伯数字组成,前第三位代表邮区,厦门市的邮政编码前三位为361 。 下面的程序功能:如果输入的邮政编码前3位是361,则输出“厦门市的邮件”;如果不是361,则输出“不是厦门市的邮件”。 请完善程序(有2个空,答案一行写一个,不要添加多余的空格). #include int main() { int code; printf("请输入邮政编码: "); scanf(" %*3d",&code); //用scanf函数截取输入邮政编码的前3位 if(361 code ) printf( "厦门市的邮件\n"); if (361!=code) printf( "不是厦门市的邮件\n"); return 0; }

作业2:单分支编程题 .

1、1、按公告中说明注册(/), 并绑定MOOC帐号 。第二周已绑定的同学不用重复此操作。 (目前用 Chrome 浏览器或火狐浏览器浏览效果最佳;IE 浏览器以及使用 IE 内核的 360 浏览器等存在由缓存引起的显示问题) 2、登入“拼题A”(PTA),“题目集”------第三周 单分支编程题(MOOC计分) •答案在“拼题A”上提交,如果测试不能通过,可在讨论区寻求帮助。注意输入、输出格式必须符合题目要求。

第4章 选择结构

测验4

1、分析以下程序, 下列说法正确的是( ) #include main() { int x=5,a=0,b=0; if(x=a+b) printf("* * * *\n"); else printf("# # # #\n"); }

A、有语法错,不能通过编译

B、通过编译,但不能连接

C、输出* * * *

D、输出# # # #

2、分析以下程序, 下列说法正确的是( ) #include main() { int x=6,a=8,b=3; if(x=a+b) printf("* * * *\n"); else printf("# # # #\n"); }

A、有语法错,不能通过编译

B、通过编译,但不能连接

C、输出* * * *

D、输出# # # #

3、分析以下程序, 下列说法正确的是( ) #include main() { int x=0,a=0,b=0; if(x==a+b) printf("* * * *\n"); else printf("# # # #\n"); }

A、有语法错,不能通过编译

B、通过编译,但不能连接

C、输出* * * *

D、输出# # # #

4、运行以下程序,如果从键盘上输入5,则输出结果是( ) #include int main() { int x; scanf("%d", &x); if ( x--< 5) printf("%d", x); else printf("%d",x++); }

A、3

B、4

C、5

D、6

5、运行以下程序,如果从键盘上输入5,则输出结果是( ) #include int main() { int x; scanf("%d", &x); if ( x--< 5) printf("%d", x); else printf("%d",++x); }

A、3

B、4

C、5

D、6

6、运行以下程序,如果从键盘上输入9,则输出结果是( ) #include int main() { int x; scanf("%d", &x); if ( ++x< 10) printf("%d", x); else printf("%d",--x); }

A、11

B、10

C、9

D、8

7、以下程序的输出是( ) #include int 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

8、下面程序的运行结果是( )。 #include main() { int a=12, b= -34, c=56, min=0; min=a; if(min>b) min=b; if(min>c) min=c; printf("%d", min); }

A、12

B、-34

C、56

D、0

9、分析以下程序, 输出结果是( ) #include int main() { int x=5; if(x) printf("* * * *\n"); printf("# # # #\n"); }

A、* * * * # # # #

B、# # # #

C、* * * *

D、无输出

10、分析以下程序, 输出结果是( ) #include int main() { int x=5; if(x) x=6; x=7; printf("%d\n",x); }

A、7

B、5

C、6

D、x

11、按功能键F5进入调试状态后,可以( )。

A、查出所有的语法错误

B、设置断点

C、控制程序一步一步地执行,每执行一步,都可以暂停

D、观察变量或表达式值的变化

12、下面( )是正确的符号函数程序。 当x>0时,y=1 当x=0时,y=0 当x<0时,y=-1 (提示:按if-else配对规则分析程序,y值的运算结果与符号函数一致,才是正确的程序)

A、if(x>0) y=1; else if(x==0) y=0; else y=-1;

B、y=0; if(x!=0) if(x>0) y=1; else y=-1;

C、y=0; if(x>=0) if(x>0) y=1; else y=-1;

D、if(x>=0) if(x>0) y=1;else y=0; else y=1;

13、程序功能:输入一个整数,当它是偶数时,输出“该数是偶数”,否则,输出“该数是奇数”。 请完善程序,空格处应填( )。 #include int main() { int x; printf("请输入x: "); scanf("%d",&x); if(x%2==0) printf( "该数是偶数\n"); //偶数除以2的余数为0 printf( "该数是奇数\n"); return 0; }

A、else

B、if(x%2!=0)

C、if(x/2!=0)

D、else if(x%2!=0)

14、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;否则输出“及格”。(程序有1个空,请选择正确的答案) #include int main() { int x; printf("请输入分数(0-100): "); scanf("%d",&x); if(x<60) printf( "不及格\n"); printf( "及格\n"); return 0; }

A、else

B、if(x>=60)

C、else if(x>=60)

D、x>=60

15、读程序,写出运行结果。 #include main() { int a=1,b=3,c=5; if (c==a+b) printf("yes\n"); else printf("no\n"); }

16、读程序,写出运行结果。 #include int main() { int x=2, y=-1, z=5; if(x

17、读程序,写出运行结果。 #include 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); //注意%5.2f 的输出格式与逗号 }

18、下面是一个旅游自助程序。程序先输出选择菜单,

如果用户输入1,则提示输入租车数量,用变量i保存,然后计算需支付的金额,并输出。 如果用户输入2,则提示输入购票数量,用变量j保存,然后计算需支付的金额,并输出。 如果用户输入其它数,则提示选择错误。 费用计算方法: 租一辆车需支付150元。 门票一张60元,如果购票数>=10,则每张50元。 请完善程序。(程序有2个空,答案一行写一个,不要添加多余的空格) #include int main() { int choose,i,j,money; printf("\n\t\t旅游自助服务\n"); printf("\t1---租车\t2---购买门票\n\n"); printf("请选择您需要的服务:"); scanf("%d",&choose); if( ) { printf("请输入租车数量"); scanf("%d",&i); money=150*i; printf("\n您需支付:%d元\n",money); } (choose==2) { printf("请输入购票数量"); scanf("%d",&j); if(j>=10) money=50*j; else money=60*j; printf("\n您需支付:%d元\n",money); } else { printf("选择错误"); } return 0; }

作业3:多分支编程题.

1、1、请按公告中说明注册(/), 并绑定MOOC帐号 。已绑定的同学不用重复此操作。 (目前用 Chrome 浏览器或火狐浏览器浏览效果最佳;IE 浏览器以及使用 IE 内核的 360 浏览器等存在由缓存引起的显示问题) 2、登入“拼题A”(PTA),“题目集”------第四周 多分支练习(MOOC---计分) •答案在“拼题A”上提交,如果测试不能通过,可在讨论区寻求帮助。 注意输入、输出格式必须符合题目要求,输出结果必须完全一样,不能增减空格。

第5章 循环基础

测验5

1、设有如下程序段,则输出结果为() int k=0,a; for (a=1;a<=1000;a++) k=k+1; printf("k=%d",k); 提示:可参考课件“附加例题解析”文档中的例题

A、k=1

B、k=1001

C、k=1000

D、溢出

2、设有如下程序段,则最后一次输出的是() int a; for (a=1;a<=1000;a++) printf("a=%d",a); 提示:可参考课件“附加例题解析”文档中的例题

A、a=1

B、a=1000

C、a=1001

D、溢出

3、设有如下程序段,则输出结果是() int a; for (a=1;a<=1000;a++) ; printf("a=%d",a); 提示:可参考课件“附加例题解析”文档中的例题

A、a=a=aaa a= 1 a= 1a=1

B、a=1000

C、a=1001

D、溢出

4、设有如下程序段,则输出结果为() int k=0,a; for (a=1;a<=1000;a++) {a=a+1;k=k+1;} printf("k=%d",k);

A、k=1000

B、k=499

C、k=500

D、k=501

5、int i,j=10; for( i=1; i==j; i++); 的循环次数是() 提示:可参考课件“附加例题解析”文档中的例题

A、0

B、5

C、10

D、无限

6、int i, j; j=10; for(i=1; i<=j; i++) j--; 程序的循环次数是()

A、0

B、5

C、10

D、无限

7、语句for(x=0,y=0; y!=1&&x<4; x++); 是()

A、无限循环

B、循环次数不定

C、循环4次

D、循环3次

8、设有程序段: int k=10; while(k=0)k = k- 1; 则下面叙述正确的是()

A、while循环执行10次

B、是无限循环

C、循环体语句执行一次

D、循环体语句一次也不执行

9、设有程序段: int k=10; while(k==0)k = k- 1; 则下面叙述正确的是()

A、while循环执行10次

B、无限循环

C、循环体语句执行一次

D、循环体语句一次也不执行

10、设有程序段: int k=10; while(k!=0) k = k- 1; 则下面叙述正确的是()

A、while循环重复执行10次

B、是无限循环

C、循环体语句执行一次

D、循环体语句一次也不执行

11、与语句while(!x);等价的语句是()

A、while(x= =0);

B、while(x!=1);

C、while(x!=0);

D、while(x==1);

12、int i=0, j; for( j=10; i

A、0

B、5语法错误 5

C、语法错误

D、无穷多次

13、设有程序段,以下说法正确的是() x = -1; do { x = x*x; } while( !x);

A、循环体将执行一次

B、循环体将执行两次

C、循环体将执行无限次

D、系统将提示有语法错误

14、C语言中while 和do-while 循环的主要区别是()

A、do-while的循环体至少无条件执行一次

B、while 的循环控制条件比do-while 的循环控制条件严格

C、do-while的循环体比while的循环体少执行1次

D、do-while 的循环体不能是复合语句

15、下列语句不是死循环的是()

A、int i = 1; while(1) i++;

B、int i =1; for(;;) i++;

C、int i =1; do i++; while(1);

D、int i =10; while(i) i--;

16、下面程序的功能是:计算1~10之间的奇数之和及偶数之和,空白处应填 () #include int main() { int a, b, c, i; a = c = 0; for(i=0; i<=10; i+=2) { a += i; } printf("偶数之和=%d!\n", a); printf("奇数之和=%d!\n", c-11); }

A、c+=i;

B、c+=i+1;

C、b+=i;

D、b+=i+1;

17、下面程序的功能是() #include int main() { int x,s=0,i; for(i=1; i<=5; i++) { scanf("%d",&x); s=s+x; } printf("s=%d\n", s); return 0; }

A、输入任意5个整数,输出这5个数的和

B、输入任意5个整数,输出这5个数

C、求1+2+3+4+5的和

D、输入语句scanf("%d",&x);不能放在循环中,程序出错

18、下面程序的功能是() #include int main() { int x,s=0,i; scanf("%d",&x); while(x!=0) { s=s+x; scanf("%d",&x); } printf("s=%d\n", s); return 0; }

A、输入一组整数,以输入0作为结束,求所有数的和并输出

B、输入一组整数,输出不为0的数

C、输入一组整数,并输出这些数

D、程序只输入了一个整数,输出0

19、编程:输入一个整数,计算该整数的位数,并输出位数。 输入样例:12345 输出样例:输入的是5位数 请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格) #include int main( ) { int i=0,k,j; scanf("%d",&k); do { k= k/10; i++; }while( ); printf("输入的是%d位数\n", i); } 提示:第二周讨论题-----讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。

20、编程:输入一个整数,计算该整数的位数,并输出位数。 输入样例:12345 输出样例:输入的是5位数 请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格) #include int main( ) { int i=0,k,j; scanf("%d",&k); do { i++; }while(k!=0); printf("输入的是%d位数\n", i); } 提示:第二周讨论题-----讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。

作业4:单循环综合编程题

1、1、请按公告中说明注册(/), 并绑定MOOC帐号 。已绑定的同学不用重复此操作。 2、登入“拼题A”(PTA),“题目集”------第五周 单循环综合编程题(MOOC---计分) •答案在“拼题A”上提交,如果测试不能通过,可在讨论区寻求帮助。 注意输入、输出格式必须符合题目要求,输出结果必须完全一样,不能增减空格或空行。

第6章 循环进阶

循环进阶选择、填空题

1、运行下面的程序,得到的输出是() #include int main() { int i, j; for(i=1;i<=2;i++) for(j=1;j<=2;j++) printf("i=%d, j=%d\n",i,j); }

A、i=1, j=1 i=1 , j=2 i=2 , j=1 i=2 , j=2

B、i=1, j=1 i=2 , j=1 i=1 , j=2 i=2 , j=2

C、i=1, j=1 i=2 , j=2 i=1 , j=1 i=2 , j=2

D、i=1, j=1 i=1 , j=1 i=2 , j=2 i=2 , j=2

2、运行下面的程序,输出的星号个数一共是() #include int main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=i;j++) putchar(' '); putchar('*'); putchar('\n'); } }

A、4

B、10

C、12

D、16

3、运行下面的程序,输出的星号个数一共是() #include int main() { int i,j; for(i=1;i<=4;i++) for(j=1;j<=i;j++) putchar(' '); putchar('*'); putchar('\n'); }

A、4

B、1

C、10

D、0

4、执行下面的程序片段,k的值是() int k=0,i,j; for(i=0;i<5;i++) for(j=0;j<3;j++) k=k+1 ;

A、3

B、5

C、15

D、8

5、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是

A、for( i=1; i<=5; i++ ) { p=1; p*=i; }

B、i=1; p=1; do { p*=i; i++; } while ( i<=5 );

C、i=1; p=1; while ( i<=5 ) { p*=i; i++; }

D、for(i=1,p=1;i<=5;i++) p*=i;

6、下面程序的功能是输出以下形式的图案,则在下划线处应填入的是 * *** ***** ******* #include int main() { int i, j; for( i=1; i<=4; i++) { for( j =1; j<= ; j++) putchar('*'); putchar('\n'); } return 0; }

A、i

B、2*i-1

C、2*i+1

D、i+2

7、下面程序的功能是输出以下形式的图案,则在下划线处应填入的是( ) ******* ***** *** * #include int main() { int i, j; for( i=1; i<=4; i++) { for( j =1; j<= ; j++) putchar('*'); putchar('\n'); } return 0; }

A、2*i-1

B、2*i+1

C、2*(5-i)-1

D、2*(5-i)+1

8、鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int main() { int x, y; for (x=1; x<98; x++) { _____(1)____ if ( __ (2) ___ ) { printf("x = %d, y = %d", x, y); } } return 0; }

A、(1) y = 98 - x; (2) 2*x+4*y == 386;

B、(1) y = 98 - x; (2) 2*x+4*y <= 386;

C、(1) x = 98 - y; (2) 2*x+4*y == 386;

D、(1) x = 98 - y; (2) 2*x+4*y <= 386;

9、打印所有的“水仙花数”。 所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为

。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int main() { int i, j, k, n; printf("result is:"); for (n=100; ___(1)____ ; n++) { i = n / 100; //得到百位 j = ____(2)______ ; k = n % 10; //得到个位 if ( ______(3)______) { printf("%d\t ",n); //输出结果 } } printf("\n"); return 0; }

A、(1) n<=1000 (2) n / 10 (3) i*100+j*10+k = i*i*i+j*j*j+k*k*k

B、(1) n<=1000 (2) (n - i * 100) / 10 (3) i*100+j*10+k == i*i*i+j*j*j+k*k*k

C、(1) n<1000 (2) n / 10 (3) i*100+j*10+k == i*i*i+j*j*j+k*k*k

D、(1) n<1000 (2) (n - i * 100) / 10 (3) i*100+j*10+k == i*i*i+j*j*j+k*k*k

10、下面程序的功能是() #include int main() { int x,s,i; scanf("%d",&x); s=x; for(i=1; i<=6; i++) { scanf("%d",&x); if(s

A、输入6个整数,输出这些数的和

B、输入7个整数,输出其中的最小数

C、输入7个整数,输出其中的最大数

D、输入6个整数,输出第1个数

11、阅读下面的程序,该程序完成的功能有( ) #include int main() { int number,min; int i,n=1; printf("请输入第1个数"); scanf("%d",&number); min=number; //只有1个数时,最小数就是这个数,设min初值为第1个数 for(i=2;i<=8;i++) { printf("请输入第%d个数",i); scanf("%d",&number); if(min>number) //min与新输入的数比,如果更大,则 { min=number; // min更新为较小的数 n=i; // n更新为较小数的位置 } } printf("第%d个数最小,为%d\n",n,min); //输出最小数的位置与最小数 return 0; } 提示:可参考课件“附加例题解析”中文档“求最值及其位置”,帮助理解。

A、输出8个数中的最小数

B、输出最小数的位置

C、求7个数最小数

D、将输入的8个数由大至小排序

12、程序功能:输入n的值(n<11),计算1!+2!+3!+......+n!,并输出计算结果。 请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格) #include int main() { int i, n; long sum=0,fac=1; //fac存储每个加项(阶乘)的值 printf("请输入n的值:"); scanf("%d",&n); for( i=1; i<=n; i++) { //后一加项与前一加项的关系 sum=sum+fac; } printf("和为%ld\n",sum); return 0; } 提示:可以参考“累加和”中讲解的最后一个例题

第7章 函数

测验7

1、C语言程序由函数组成。正确的说法是( )

A、主函数必须写在其他函数之前,函数内可以嵌套定义函数

B、主函数必须在写其他函数之后,函数内可以嵌套定义函数

C、主函数必须写在其他函数之前,函数内不可以嵌套定义函数

D、主函数可以写在其他函数之后,函数内不可以嵌套定义函数

2、以下说法正确的是( )

A、C语言程序总是从第一个定义的函数开始执行

B、C语言程序中,被调用的函数必须在main()函数中定义

C、C语言程序总是从主函数main()开始执行。

D、C程序中的main()函数必须放在程序的开始处

3、已知函数fun类型为void,则void的含义是( )

A、执行函数fun后,函数没有返回值

B、执行函数fun后,可以返回任意类型的值

C、执行函数fun后,程序结束,不再返回主调函数

D、以上三个答案都是错误的

4、若有返回值的函数类型和return语句中的表达式类型不一致,则( )

A、运行时出现不确定结果

B、返回值的类型以函数类型为准

C、编译时出错

D、返回值的类型以return语句中表达式的类型为准

5、下面函数定义正确的是( )。

A、double fun(double u,v) {return u+v;}

B、double fun(double u;double v) {return u+v;}

C、double fun(float u,float v) {return u+v;}

D、double fun( u,v) { float u,v ;return u+v;}

6、以下函数fun的返回值类型为( )。 fun(double x){ ……}

A、double

B、void

C、int

D、无法确定类型

7、一个C语言程序的基本组成单位是( )。

A、主程序

B、子程序

C、函数

D、过程

8、C语言中函数返回值类型由( )决定。

A、调用该函数的主调函数类型

B、函数参数类型

C、return语句中的表达式类型

D、定义函数时指定的函数类型

9、编写函数计算下面多项式的值,并返回值

编写main,输入x,调用该函数计算多项式的值并显示结果。 请完善下面的程序:(有2个空,答案一行写一个,不要添加多余的空格) #include double f(double x) { 2*x*x+3*x+1; } int main() { double x; printf("请输入x:"); scanf("%lf",&x); printf("f(%.2f)的值是%.2f",x, ); return 0; }

10、一个正整数如果恰好等于它的除自身外的因数之和,这个数称为“完数”。例如,6的因数有1、2、3,且6=1+2+3,因此6是“完数”。 编写判别完数的函数wanshu(int x):功能判断x是否为完数,如果是,则返回1,不是,则返回0。 编写main()中让x从1循环至1000,并调wanshu函数,如果返回值为1,则输出该数。 请完善下面的程序:(有3个空,答案一行写一个,不要添加多余的空格) #include int wanshu(int x) { int i,r=0; for(i=1;i

11、编写最小值函数,功能求x,y的最小值,并返回最小值。 main()中输入x,y的值,并调用min函数,输出返回值。 请填空完善程序。(有3个空,答案一行写一个,不要添加多余的空格) #include int (int x, ) { if(x

12、编写求最大公约数函数gcd:功能是求两数的最大公约数,并返回该数。 main函数中调用该函数,并输出最大公约数。 请填空完善程序。(有2个空,答案一行写一个,不要添加多余的空格) #include int gcd(int m,int n) //求m,n的公约数的函数 { int r; r=m; // r 是公约数,初值为 m while((m%r!=0)||(n%r!=0)) //当 r 不是公约数时,循环直至找到公约数 ; // r 减小1 return r; } int main() { int m,n; printf("请输入两个数"); scanf("%d%d",&m,&n); printf("最大公约数%d\n", ); //调用gcd函数 return 0; }

13、编写求最小公倍数函数sct:功能是求两数的最小公倍数,并返回该数。 main函数中调用该函数,并输出最小公倍数。 请填空完善程序。(有2个空,答案一行写一个,不要添加多余的空格) #include int sct(int m,int n) //求m,n的公倍数的函数 { int r; r=m; // r 是公倍数,初值为 m while((r%m!=0)||(r%n!=0)) //当 r 不是公倍数时,循环直至找到公约数 ; // r 增加1,用于下次循环测试下一个数 return ; // 返回得到的公倍数 } int main() { int m,n; printf("请输入两个数"); scanf("%d%d",&m,&n); printf("最小公倍数是%d\n",sct(m,n)); return 0; }

第8章 函数与变量

测验 8

1、以下叙述中错误的是( )。

A、函数形参是存储类型为自动类型的局部变量

B、全局变量的存储类别是auto型的。

C、static int x; 则x会被初始化为0

D、函数中定义的变量默认是自动变量

2、当全局变量与函数内部的局部变量同名时,则在函数内部( )。

A、全局变量有效

B、局部变量有效

C、全局变量与局部变量都有效

D、全局变量与局部变量都无效

3、以下说法中正确的是( )

A、形参是全局变量,其作用范围仅限于函数内部。

B、形参是全局变量,其作用范围从定义之处到文件结束。

C、形参是局部变量,其作用范围仅限于函数内部。

D、形参是局部变量,其作用范围从定义之处到文件结束。

4、在一个源文件中定义的全局变量的作用域为( )

A、本文件的全部范围

B、本程序的全部范围

C、本函数的全部范围

D、从定义该变量的位置开始至本文件结束

5、下面程序中,x被分配---释放存储空间,总共有( )次这样的过程。 #include void proc (int a); int x; int main ( ) { proc(2); proc(3); } void proc (int a) { x=2; ....; }

A、1

B、2

C、3

D、0

6、程序输出结果为( ) #include void proc (); int main ( ) { int x=1; //定义局部变量x,局部变量只在本函数中有效 proc( ); printf("%d\n",x); } void proc ( ) { int x; //定义局部变量x,局部变量只在本函数中有效 x=2; }

A、1

B、2

C、main,proc函数中都定义了变量x,程序错误

D、0

7、程序输出结果为( )。 #include int x=0; //x定义在所有函数之外,为全局变量 void proc (); int main ( ) { x=1; proc( ); printf("%d\n",x); } void proc ( ) { x=2; }

A、2

B、0

C、1

D、程序错误

8、下面程序的执行结果为( )。 #include void proc (); int main ( ) { int x=8; //定义局部变量x,局部变量只在本函数中有效 proc( ); printf("%d\n",x); return 0; } void proc ( ) { x=100; }

A、编译不能通过

B、8

C、100

D、随机数

第10章 一维数组

测验 10

1、以下数组定义中,错误的是( )。

A、int a[]={1,2,3};

B、int a[5]={1,2,3};

C、int a[3]={1,2,3,4};

D、int a[5],b;

2、设有定义 int a[10]={0};则说法正确的是( )。

A、数组a有10个元素,各元素的值为0

B、数组a有10个元素,其中a[0]的值为0,其他元素的值不确定

C、数组a有1个元素,其值为0

D、数组初始化错误,初值个数少于数组元素个数

3、在以下字符串String的赋值运算中,错误的是( )。

A、char str[10]= { 'S' ,'t', 'r' ,'i','n', 'g','\0'};

B、char str[10]= "String";

C、char str[6]= { 'S' ,'t', 'r' ,'i','n', 'g'};

D、char str[]= { 'S' ,'t', 'r' ,'i','n', 'g',0};

4、设有以下字符串定义,则数组s1和s2( )。 char s1[]={ 'S' ,'t', 'r' ,'i','n', 'g'}; char s2[]= "String";

A、长度相同,内容也相同

B、长度不同,但内容相同

C、长度相同,但内容不同

D、长度不同,内容也不同

5、引用数组元素时,数组元素下标不可以是( )。

A、字符常量

B、整型变量

C、字符串

D、算术表达式

6、int a[10]={1,2,3}; 则a[2]的值为( )。

A、2

B、3

C、1

D、0

7、int a[5]={1,2,3}; 则a[4]的值为( )。

A、0

B、3

C、没有确定的值

D、2

8、下面( )是字符串结束符。

A、'\0'

B、end

C、'\t'

D、enter

9、下面( )是错误的数组定义。

A、int a[2*i];

B、int a[10];

C、int b[10+10];

D、float x[15-5];

10、设有定义 int a[3]; 下面数组元素的赋值中,错误的是( )。

A、a[1]=1;

B、a[0]=2;

C、a[3]=3;

D、a[2]=100;

11、定义int a[5]; 下面( )不可以给5个数组元素赋值。

A、a={1,2,3,4,5};

B、for(i=0;i<5;i++) a[i]=i;

C、for(i=0;i<5;i++) scanf("%d",&a[i]);

D、a[0]=1;a[1]=1;a[2]=2;a[3]=3;a[4]=4;

12、定义int b[6]; 下面( )可以输出数组的所有元素的值。

A、for(i=0;i<6;i++) printf("%d",b[i]);

B、for(i=1;i<=6;i++) printf("%d",b[i]);

C、printf("%d",b);

D、while(b[i]!='\0') printf("%d",b[i]);

13、/*------------------------------------------------------------------------------------------------ 程序功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分的人数为1人。 ----------------------------------------------------------------------------------------------*/ #include float Min=0; int J=0; float fun(float array[],int n) { int i;float sum=0,ave; Min=array[0]; for(i=0;iarray [i]) Min=array [i]; ____________; } ave=sum\n; for(i=0;i

第9章 基本数据类型

测验 9

1、下列( )是合法的字符常量。

A、"c"

B、c

C、'char'

D、'\n'

2、下列合法的字符串常量是( )。

A、56

B、'56'

C、"56"

D、'\t'

3、已知字母A的ASCII码为十进制的65,下面程序的输出是( )。 int main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c",ch1,ch2); }

A、67,D

B、B,C

C、C,D

D、不确定的值

4、设有以下程序段,则输出结果是( )。 char c1='b', c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A');

A、2, M

B、3,E

C、2, E

D、输出结果不确定

5、若变量c为char类型,能正确判断出c为小写字母的表达式是( )。

A、'a'<=c<='z'

B、(c>='a') || (c<='z')

C、('a'<=c) and ('z'>=c)

D、(c>='a') && (c<='z')

6、有如下程序段,执行该程序段后,x的值为( )。 int a=14,b=15,x; char c='A'; x=(a && b) && (c

A、14

B、false

C、0

D、1

7、若有下列类型说明语句: char w; int x ; float y ; double z ; 则表达式w*x+z-y值的正确数据类型为( )。

A、float

B、char

C、int

D、double

8、若有下列类型说明语句: int x ; double y ; 则表达式x-y值的正确数据类型为( )。

A、char

B、int

C、double

D、float

9、double x; 正确的输入语句是( )。

A、scanf("%lf",&x);

B、scanf("%hf",&x);

C、scanf("%f",&x);

D、scanf("%ld",&x);

10、下面( )将十进制数转为八进制数输出。

A、printf("%o",50);

B、printf("%d",50);

C、printf("%x",50);

D、printf("%c",50);

11、下面( )将十进制转为十六进制输出。

A、printf("%o",50);

B、printf("%x",50);

C、printf("%c",50);

D、printf("%d",50);

12、下面( )将十六进制数转为八进制输出。

A、printf("%o",050);

B、printf("%o",0x50);

C、printf("%d",050);

D、printf("%x",50);

13、下面( )类型的取值范围没有负数 。

A、int

B、float

C、double

D、unsigned

14、用for循环语句编程输出A~Z之间的所有大写字母,字母之间以空格分隔,要求一行输出8个字符。下面的程序有一个空,请选择恰当的循环语句完善程序。 #include int main() { char c; int count=0; { printf("%c ", c); count++; if(count%8==0) //每8个字符换行 printf("\n"); } return 0; }

A、for(c='A'; c<='Z'; c++)

B、for(c=65; c<=90; c++)

C、for(c=1; c<=26; c++)

D、for(c='a'; c<='z'; c++)

第12 章 指针

测验12

1、设已定义 int a, *p; 下列赋值表达式中正确的是 。

A、*p=a

B、p=*a

C、p=&a

D、*p=&a

2、若已定义 int a=1,*b=&a; , 则printf("%d\n",*b);的输出结果为 。

A、a的值

B、a的地址

C、b的值

D、b的地址

3、设已定义 int x, *p ,*p1=&x , *p2=&x ; 则下列表达式中错误的是 。

A、x=*p1+*p2

B、p=p1

C、x =p1+p2

D、p1=0

4、若已定义 int a[]={1,2,3,4},*p=a; 则下面表达式中值不等于2的是 。

A、*(a+1)

B、*(p+1)

C、*(++a)

D、*(++p)

5、若已定义 int a[]={1,2,3,4},*p; p=a+1; 则p[2]的值是 。

A、2

B、3

C、4

D、无意义

6、定义:int x;float y;int *p; 下面对指针变量p赋值正确的是( )。

A、p=1000;

B、p=&y;

C、p=&x;

D、p=x;

7、int x=1,y=2; int *p1,*p2; p1=&x;p2=&y; 下面与x=y;不等价的语句是( )

A、*p1=*p2;

B、*p1=y;

C、x=*p2;

D、p1=p2;

8、int n; int *p1; p1=&n; 下面与n=3;等价的语句是( )

A、*p1=3;

B、p1=3;

C、&p1=3;

D、3=n;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。