第1周 程序设计入门

本周测试

1、单选题:
​面向过程的高级语言包括( )​​​
选项:
A: C,JAVA
B: C,BASIC
C: C++.NET,ASP
D: C,VB
答案: 【 C,BASIC

2、单选题:
‌程序设计语言包括( )‏‌‏
选项:
A: 高级语言
B: 机器语言、汇编语言、高级语言
C: 机器语言
D: 汇编语言
答案: 【 机器语言、汇编语言、高级语言

3、单选题:
​用C语言编写的代码程序( )‎​‎
选项:
A: 可立即执行
B: 是一个源程序
C: 经过编译即可执行
D: 经过解释才能执行
答案: 【 是一个源程序

4、单选题:
​以下叙述中正确的是( )‍​‍
选项:
A: 用C程序实现的算法必须要有输入和输出操作
B: 用C程序实现的算法可以没有输出但必须要有输入
C: 用C程序实现的算法可以没有输入但必须要有输出
D: 用C程序实现的算法可以既没有输入也没有输出
答案: 【 用C程序实现的算法可以没有输入但必须要有输出

5、单选题:
‍程序设计的基本步骤主要包括( )。‍
选项:
A: 确定数据结构,算法描述、编写程序以及程序测试
B: 确定程序设计方法,描述数据方式、编写程序以及程序调试
C: 确定程序实现算法、编写程序以及程序测试
D: 数据描述,算法描述、编写程序
答案: 【 确定数据结构,算法描述、编写程序以及程序测试

6、单选题:
‌一个C语言程序总是从( )。‏
选项:
A: 主过程开始执行
B: 主函数开始执行
C: 子程序开始执行
D: 主程序开始执行
答案: 【 主函数开始执行

7、单选题:
‎C语言规定:在一个源程序中,main函数的位置( )‎‎‎
选项:
A: 必须在最开始
B: 必须在系统调用的库函数的后面
C: 必须在最后
D: 可以任意位置
答案: 【 可以任意位置

8、单选题:
‎(2012.03全国二级C题)以下叙述中错误的是( )‌‎‌
选项:
A: 一个C程序中可以包含多个不同名的函数
B: 一个C程序只能有一个主函数
C: C程序在书写时,有严格的缩进要求,否则不能编译通过
D: C程序的主函数必须用main作为函数名
答案: 【 C程序在书写时,有严格的缩进要求,否则不能编译通过

9、单选题:
‌(2007.04全国二级C题)下列叙述中错误的是( )‏‌‏
选项:
A: 计算机不能直接执行用C语言编写的源程序
B: C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C: 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D: 后缀为.obj和.exe的二进制文件都可以直接运行
答案: 【 后缀为.obj和.exe的二进制文件都可以直接运行

10、单选题:
‌C语言中如何实现注释‍
选项:
A: 通过  /*   */  界定的内容为注释内容。例如 /* 测试 */
B:  一行中\开始的剩余部分为注释内容。例如  int a=10;\测试
C:  一行中#开始的剩余部分为注释内容。例如  int a=10;#测试
D:  一行中@开始的剩余部分为注释内容。例如  int a=10;@测试
答案: 【 通过  /*   */  界定的内容为注释内容。例如 /* 测试 */

11、单选题:
‍C语言中主函数的名称是‏
选项:
A: main
B: MAIN
C: Main
D: WinMain
答案: 【 main

12、单选题:
​如下属于C基本语句的是?‏
选项:
A: #include <stdio.h>
B: x=sin(100)
C: x=1+2
D: 1+2;
答案: 【 1+2;

13、单选题:
​C语言中界定函数开始与结束的符号是‎
选项:
A: {   }
B: [ ]
C: (   )
D: < >
答案: 【 {   }

14、单选题:
‌关于C语言基本语句说法正确的是?‎
选项:
A: 基本语句必须在一行中
B: 基本语句必须以分号;作为结束标志
C: 基本语句以回车符作为结束标志
D: #include <stdio.h>属于基本语句
答案: 【 基本语句必须以分号;作为结束标志

15、单选题:
‏实现向显示器输出信息的函数是​
选项:
A: scanf
B: printfun
C: print
D: printf
答案: 【 printf

第2周 信息编码与基本运算

本周测试

1、单选题:
‎(2007.04全国二级C题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()‏
选项:
A: 大写字母
B: 减号
C: 数字字符
D: 下划线
答案: 【 减号

2、单选题:
‌不合法的c语言标识符是( )​
选项:
A: _abc
B: MD
C: Int
D: x.c
答案: 【 x.c

3、单选题:
​()是c语言提供的合法的数据类型关键字‍
选项:
A: Int
B: long
C: Char
D: integer
答案: 【 long

4、单选题:
‌以下选项中不属于C语言的类型的是( )​
选项:
A: signed short int
B: unsigned long int
C: unsigned int
D: long short
答案: 【 long short

5、单选题:
​(2011.09全国二级C题)以下选项中关于C语言常量的叙述错误的是()。‎
选项:
A: 所谓常量,是指在程序运行过程中,其值不能被改变的量
B: 常量分为整型常量、实型常量、字符常量和字符串常量
C: 常量可分为数值型常量和非数值型常量
D: 经常被使用的变量可以定义成常量
答案: 【 经常被使用的变量可以定义成常量

6、单选题:
‍不正确的变量说明是( )‍
选项:
A: unsigned int ui
B: short int s
C: double int a
D: int I,j,k
答案: 【 double int a

7、单选题:
‌(2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()‍
选项:
A: 只有整型数在允许范围内能精确无误的表示,实型数会有误差
B: 只要在允许范围内整型数和实型数都能精确的表示
C: 只有实型数在允许范围内能精确无误的表示,整型数会有误差
D: 只有用八进制表示的数才不会有误差
答案: 【 只有整型数在允许范围内能精确无误的表示,实型数会有误差

8、单选题:
‏已知char a=’17’,变量a中( )‎
选项:
A: 包含1个字符
B: 包含2个字符
C: 包含3个字符
D: 说明非法
答案: 【 包含1个字符

9、单选题:
​以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )‎
选项:
A: int x=y=z=5;
B: int x,y,z=5;
C: int x=5,y=5,z=5;
D: x=y=z=5;
答案: 【 int x=5,y=5,z=5;

10、单选题:
‏(2010.09全国二级C题)有定义:int a; long b; double x,y; 则以下选项中正确的表达式是( )‏
选项:
A: a%(int)(x-y)
B: a=x/10=y;
C: (a*y)%b
D: y=x+y=x
答案: 【 a%(int)(x-y)

11、单选题:
‎设有定义:int  x=2;,以下表达式中,值不为6的是‌
选项:
A: x*=x+1
B: x++,2*x
C: x*=(1+x)
D: 2*x, x+=2
答案: 【 2*x, x+=2

12、单选题:
‌若有int n=6;表达式n%=n+=n-=n*n的值为( )‌
选项:
A: 10
B: 0
C: 12
D: 6
答案: 【 0

13、单选题:
‏(2009.09全国二级C题)表达式(int)((double)9/2)-(9)%2的计算结果是( )‌
选项:
A: 0
B: 3
C: 4
D: 5
答案: 【 3

14、单选题:
‏sizeof(float)是( )‏
选项:
A: 一个双精度型表达式
B: 一个整型表达式
C: 一个函数调用
D: 一个不合法的表达式
答案: 【 一个整型表达式

15、单选题:
‎以下表达式不等价的一组是( )‌
选项:
A: a&=b与a=a&b
B: a|=b与a=a|b
C: a!=b与a=a!b
D: a^=b与a=a^b
答案: 【 a!=b与a=a!b

16、单选题:
‏若有char ch='A;则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( )‍
选项:
A: A
B: a
C: Z
D: z
答案: 【 a

17、单选题:
​判断char型变量c1是否为大写字母的正确表达式是( )​
选项:
A: 'A'<=c1<='Z'
B: (c1>='A')&(c1<='Z')
C: (c1>='A')&&(c1<='Z')
D: ('A'<=c1)AND('Z'>=c1)
答案: 【 (c1>='A')&&(c1<='Z')

18、单选题:
‏正确表达式数学不等式 10<x<100的C语言表达式是?(假设x已经声明)()‍
选项:
A: 10<x<100
B: 10>x>100
C: 10<x && x<100
D: 10<x and x<100
答案: 【 10<x && x<100

19、单选题:
‎正确表达式数学不等式 |x|<100 其x不等于0的C语言表达式是?(假设x已经声明)()‎
选项:
A: -100<x && x<100 && x!=0
B: -100<x && x<100 && x<>0
C: -100<x<0 &&  0<x<100
D: -100<x<0 ||  0<x<100
答案: 【 -100<x && x<100 && x!=0

20、单选题:
‌表达式 (x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)‍
选项:
A: 100
B: 200
C: 101
D: 201
答案: 【 200

21、单选题:
‍可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)‏
选项:
A: (x<0?-x:x)
B: (x>0?-x:x)
C: (x<0&&x=-x)
D: (x>0||x=-x)
答案: 【 (x<0?-x:x)

第3周 常用函数库与顺序结构

本周测试

1、单选题:
‏系统的标准输出文件stdout是指( )‏
选项:
A: 键盘
B: 显示器
C: 软盘
D: 硬盘
答案: 【 显示器

2、单选题:
‏c语言中标准输入文件stdin是指( )‌
选项:
A: 键盘
B: 显示器
C: 鼠标
D: 硬盘
答案: 【 键盘

3、单选题:
‍下列描述中,正确的是( )‎
选项:
A: 所有的输入/输出都是通过调用库函数处理的
B: 所有的输入/输出都是通过输入/输出语句实现的
C: getchar和putchar可以省略#include
D: 在输入/输出格式中的*表示跳过数据的含义
答案: 【 所有的输入/输出都是通过调用库函数处理的

4、单选题:
‍(2001.09全国二级C题)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()‌
选项:
A: INPUT x、y、z;
B: scanf(“%d%d%d”,&x,&y,&z);
C: scanf(“%d%d%d”,x,y,z); 
D: read(“%d%d%d”,&x,&y,&z);
答案: 【 scanf(“%d%d%d”,&x,&y,&z);

5、单选题:
‏(2005.09全国二级C题)以下叙述中正确的是()。‎
选项:
A: 调用printf函数时,必须要有输出项
B: 使用putchar函数时,必须在之前包含头文件stdio.h
C: 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D: 调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
答案: 【 使用putchar函数时,必须在之前包含头文件stdio.h

6、单选题:
​有以下程序​​void main(){​​int a=6,b=7;​​printf("a=%%d,b=%%d",a,b);​​}​​输出结果是( )。​
选项:
A: a=b,y=3
B: a=%d,b=%d
C: a=%6,b=%7
D: a=%%6,b=%%d
答案: 【 a=%d,b=%d

7、单选题:
​(2010.03全国二级C题)有以下程序:‎​   void  main()‎​  { ‎​       char a,b,c,d;‎​  scanf(“%c%c”,&a,&b);‎​  c=getchar(); d=getchar();‎​  printf(“%c%c%c%cn”,a,b,c,d);‎​  }‎​  当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)‎​  12‎​  34‎​  则输出结果是()。‎​‎
选项:
A: 1234
B: 12
C: 12      3
D: 1234
答案: 【 12      3

8、单选题:
​(2012.09全国二级C题)若有定义和语句:‏​int a,b;‏​scanf(“%d,%d”,&a,&b);‏​以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。‏​‏
选项:
A: 3,5,
B: 3,5,4
C: 3  5
D: 3,5
答案: 【 3  5

9、单选题:
‏阅读程序,指出输出结果是( )。 ‌‏void main()‌‏{‌‏char c1,c2,c3;‌‏c1='a';‌‏c2='z';‌‏c3=c2-c1;‌‏printf("%c,%c,%d ",c1,c2,c3);‌‏}‌‏‌
选项:
A: a ,z ,25
B: A,Z,25
C: a,z,
D: 97,122,25
答案: 【 a ,z ,25

10、单选题:
​若运行以下程序时,从键盘输入25,15,10<回车>,则输出结果为( )。‌​ void main() ‌​{‌​ int a1,a2,a3; ‌​scanf("%d%d%d",&a1,&a2,&a3);‌​printf("a1+a2+a3=%dn",a1+a2+a3) ;‌​}‌​‌
选项:
A: a1+a2+a3=50
B: a+a2+a3=25
C: a1+a2+a3=10
D: 不确定值
答案: 【 不确定值

11、单选题:
‎以下程序段 :​‎int a=1234;​‎printf("%2dn",a);​‎输出结果是( )​‎​
选项:
A: 12
B: 23
C: 1234
D: 提示出错,无结果
答案: 【 1234

12、单选题:
‎(2011.09全国二级C题)以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)​
选项:
A: printf("%cn",'a'-32); 
B: printf("%dn",'A');
C: printf("%cn",65); 
D: printf("%cn",'B'-1);
答案: 【 printf("%dn",'A');

13、单选题:
‍下面语句中,正确的是( )。‏
选项:
A: printf("%cn","student");
B: printf("%cn","c");
C: printf("%sn",&a);
D: printf("%sn","hello");
答案: 【 printf("%sn","hello");

14、单选题:
​有如下语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )。‍
选项:
A: 132
B: 1,3,2
C: a=1,b=3,c=2 
D: a=1 b=3 c=2
答案: 【 a=1,b=3,c=2 

15、单选题:
‏数字字符0的ASCII值为48,若有以下程序​‏main()​‏{   ​‏    char  a='a',b='b';​‏    printf("%c,",b++);​‏    printf("%dn",b-a);​‏}​‏程序运行后的输出结果是​‏​
选项:
A: 0,2
B: c,2
C: b,2
D: 2,50
答案: 【 b,2

16、单选题:
‏有以下程序‏‏main()‏‏{‏‏   int  a,b,d=25;‏‏   a=d/10%9;‏‏   b=a&&(-1);‏‏   printf("%d,%dn",a,b);‏‏}‏‏程序运行后的输出结果是‏‏‏
选项:
A: 6,1
B: 2,1
C: 6,0
D: 2,0
答案: 【 2,1

17、单选题:
​若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值‏
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 1

18、单选题:
‎有以下程序‌‎main()‌‎{   ‌‎    int  a,b,p;‌‎   scanf("m=%dn=%dp=%d",&a,&b,&p);‌‎   printf("%d%d%dn",a,b,p);‌‎}‌‎若想从键盘上输入数据,使变量a中的值为12,b中的值为56,p中的值为89,则正确的输入是‌‎‌
选项:
A: m=12n=56p=89
B: m=12  n=56  p=89
C: a=12b=56p=89
D: 12  56  89
答案: 【 m=12n=56p=89

19、单选题:
​假设 float d=12.3456,则表达式printf("%10.2f",(int)d)的输出结果为‍
选项:
A: 12.34
B: 1.23
C: 1.20
D: 12.0
答案: 【 1.20

20、单选题:
‍假设 unsigned u=0,从键盘正确读入一个整数给u的语句是‎
选项:
A: scanf("%d",u);
B: scanf("%u",&u);
C: scanf("%ud",u);
D:  scanf("%ld",&u);
答案: 【 scanf("%u",&u);

21、单选题:
‍如下程序段执行的结果为‎‍int a=100,b=0,c;‎‍c=(b=100)+ (b>0) a++;‎‍printf("c=%d",c);‎‍‎
选项:
A: 200
B: 201
C: 202
D: 203
答案: 【 201

22、单选题:
‏如下程序段执行的结果为‌‏int a=100,b=200,c;‌‏c= a>b&&b+=100;‌‏c=b++;‌‏printf("c=%d",c);‌‏‌
选项:
A: 200
B: 201
C: 300
D: 301
答案: 【 200

23、单选题:
‏如下程序段执行的结果为​‏    int a=100,b=200,c;​‏    c=!a+(b>>2)%10;​‏​‏    printf("c=%d",c);​‏​
选项:
A: 0
B: 10
C: 80
D: 101
答案: 【 0

第4周 逻辑判断与选择结构

本周测试

1、单选题:
对下面的程序说法正确的是______。‌void main()‌{ int x=3,y=0,z=0;‌  if(x=y+z)‌    printf("****");‌  else‌    printf("####");‌}‌‌‌
选项:
A: 输出为####
B: 有语法错误,不能通过编译
C: 输出为**** 
D: 通过编译,但是不能运行
答案: 【 输出为####

2、单选题:
执行下面程序的结果为______。‏void main()‏{‏  int a=3,b=4,t=1;‏  if(a>b)‏  {t=a;a=b;b=t;}‏  printf("%d",a);‏}‏‌‏
选项:
A: 3
B: 4
C: 1
D: 0
答案: 【 3

3、单选题:
执行下面语句段后的输出结果为______。‌   int i=-1;‌   if (i<=0)‌       printf("****n");‌       i=2;‌    else‌       printf("%%%%n");‌‏‌
选项:
A: 有语法错误
B: **** 
C: %%
D: %%%%c
答案: 【 有语法错误

4、单选题:
‏下述语句中,______中的if 语法有错误‎
选项:
A: if(x!=y)        scanf(“%d”,x)else        scanf(“%d”,y);
B: if(x==y); 
C: if(x==y)          x+y;
D: if(x==y)     {x++;y++;}
答案: 【 if(x!=y)        scanf(“%d”,x)else        scanf(“%d”,y);

5、单选题:
假设变量i为整型量,比较下面两条if语句,选出正确答案______。​if(i!=0);  ​if(i);​‍​
选项:
A: 两者作用等价
B: 两者作用不同
C: 两者作用相反
D: if(i)语法错
答案: 【 两者作用等价

6、单选题:
下面程序执行后输出结果是______。‏   void  main()‏   {  int n=0,m=1,x=2;‏      if(!n)  x-=1;‏      if(m)   x-=2;‏      if(x)   x-=3;  ‏      printf(“%dn”,x);‏   }‏‏‏
选项:
A: -4
B: 2
C: -6
D: -1
答案: 【 -4

7、单选题:
阅读程序,分析输出结果是( )。‍#include <stdio.h>‍void main()‍{ ‍int x=10,y=5; ‍switch(x) ‍{ case 1:x++; ‍default: x+=y;‍case 2:y--;‍case 3:x--;‍}‍printf("x=%d,y=%d",x,y);‍}‍​‍
选项:
A: x=14,y=4
B: x=15,y=5
C: x=10,y=5
D: x=15,y=4
答案: 【 x=14,y=4

8、单选题:
阅读程序,分析输出结果是( )。 ‎#include <stdio.h>‎void main()‎{ ‎ int a=6,b=10,t;‎ if((a=b)>0)‎ t=a+b;‎ printf("%dn",t);‎}‎‏‎
选项:
A: 20
B: 16 
C: 12
D: 无输出
答案: 【 20

9、单选题:
阅读程序,分析输出结果是( )。 ‍#include <stdio.h>‍void main( )‍{ ‍ int a=2,b=-1,c=2;‍ if(a)‍ if(b<0) c=0;‍ else c++;‍ printf("%dn",c);‍}‍‏‍
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0

10、单选题:
若执行下面的程序时从键盘输入10,则输出是( )。 ‍void main( )‍{  ‍ int a;‍ scanf("%d",&a);‍ if(++a<10)‍ printf("%dn",a++);‍ else ‍ printf("%dn",++a); ‍}‍‍‎‍
选项:
A: 12
B: 11
C: 10
D: 9
答案: 【 12

11、单选题:
阅读程序,分析输出结果是( )。​void main( )​{ ​  int x=0,a=1,b=1;​  switch(x)​  {   ​     case 0: a++;​     case 1: b++;break;​     case 2: a++;b++;​   }​   printf("a=%d,b=%dn",a,b);​}​​​
选项:
A: a=2,b=2
B: a=3,b=3
C: a=1,b=1
D: 没有正确结果
答案: 【 a=2,b=2

12、单选题:
‍下列条件语句中,功能与其他语句不同的是( )‍
选项:
A: if(a==0) printf("%dn",x); else printf("%dn",y); 
B: if(a) printf("%dn",x); else printf("%dn",y);
C: if(a==0) printf("%dn",y); else printf("%dn",x);
D: if (a!=0) printf("%dn",x); else printf("%dn",y);
答案: 【 if(a==0) printf("%dn",x); else printf("%dn",y); 

13、单选题:
(201203二级c)若下面程序运行时从键盘输入9<回车>,则输出结果是()。‏#include <stdio.h>‏void main()‏{‏   int a;‏   scanf(“%d”, &a);‏   if(a++ < 9)‏        printf(“%dn”, a);‏   else‏        printf(“%dn”, a--);‏}‏‏‌‏
选项:
A: 10
B: 11
C: 9
D: 8
答案: 【 10

14、单选题:
有以下程序‍#include <stdio.h>‍main()‍{‍int y=9;‍if(y>0,y--)‍ if(y%3==0) printf("%d",--y);‍printf("%d",y);‍}‍程序的运行结果是‍‏‍
选项:
A: 8
B: 88
C: 99
D: 9
答案: 【 8

15、单选题:
有以下程序‌#include <stdio.h>‌main()‌{‌int y=9;‌switch(y++)‌{‌ case 9:y/=2;‌ case 8:--y;‌}‌printf("%d",y);‌}‌程序的运行结果是‌​‌
选项:
A: 4
B: 5
C: 3
D: 9
答案: 【 4

16、单选题:
以下程序‌#include <stdio.h>‌main()‌{‌int a=2,b=3,c=0;‌if(a=b)‌ c=a;‌else‌    c=b;‌ ‌printf("%d",c);‌}‌程序的运行结果是‌‌​‌
选项:
A: 3
B: 0
C: 2
D: 1
答案: 【 3

17、单选题:
有以下程序‌#include <stdio.h>‌main()‌{‌int a=2,b=1,c=0;‌if(a&b)‌ c=a;‌else‌    c=b;‌ ‌printf("%d",c);‌}‌程序的运行结果是‌‏‌
选项:
A: 1
B: 0
C: 2
D: 3
答案: 【 1

18、单选题:
以下程序‎#include <stdio.h>‎main()‎{‎int a=2,b=1,c=0;‎if(a||b)‎ c=a;‎else‎    c=b;‎ ‎printf("%d",c);‎}‎程序的运行结果是‎​‎
选项:
A: 2
B: 0
C: 3
D: 1
答案: 【 2

19、单选题:
如下程序的运行结果是()‏int main()‏{‏    int a=2,b=1,c=0;‏    if(a>=b){‏        switch(a++,b++)‏        {‏        case 1:‏            c=a;‏        case 0:‏            c=b;break;‏        default:‏            c=0;‏        }‏    }‏    printf("%d",c);‏    return 0;‏}‏​‏
选项:
A: 2
B: 0
C: 1
D: 3
答案: 【 2

20、单选题:
如下程序的运行结果是()​int main()​{​    int a=0,b=0,c=0;​    if(a=1,a>=b){​        switch(b++)​        {​        case 1:​            c=a;​        case 0:​            c=b;break;​        default:​            c=0;​        }​    }​    printf("%d",c);​    return 0;​}​‏​
选项:
A: 1
B: 0
C: 2
D: 3
答案: 【 1

21、单选题:
如下程序的运行结果是()‍int main()‍{‍    int a=3,b=1,c=0;‍    if(a>b?a:b){‍        switch(b%10)‍        {‍        case 1:‍            c=a;‍        case 0:‍            c=b;break;‍        default:‍            c=0;‍        }‍    }‍    printf("%d",c);‍    return 0;‍}‍‎‍
选项:
A: 1
B: 0
C: 2
D: 3
答案: 【 1

第5周 迭代计算与循环结构

本周测试

1、单选题:
‏对于循环语句​‏while(1); ​‏描述正确的是( )。​
选项:
A: 死循环 
B: 循环一次 
C: 不执行循环体 
D: 编译有错
答案: 【 死循环 

2、单选题:
​下面程序的运行结果是( )‏​#include <stdio.h>‏​int  main()‏​{‏​    int c1=2, c2=0;‏​    while(!c2--)‏​      printf("%d,  %d",  c1--,  c2);‏​    return  0;‏​}‏​‏
选项:
A: 陷入死循环
B: 不输出任何内容
C: 输出2, -1 
D: 输出2, 0
答案: 【 输出2, -1 

3、单选题:
​若有语句while((ch=getchar())=='e') printf("*");‏​当输入字符串abcde<回车>时,while循环体执行()次。‏​‏
选项:
A: 1次
B: 死循环
C: 0次
D: 5次
答案: 【 0次

4、单选题:
​已知int t=0; while(t=1) {...} 则以下叙述正确的是()‍
选项:
A: 循环控制表达式的值为0
B: 循环控制表达式的值为1
C: 循环控制表达式不合法
D: 以上说法都不对
答案: 【 循环控制表达式的值为1

5、单选题:
​以下程序段执行后的输出结果(   )。‏​int i;‏​   for(i=1; ; i++)‏​     printf(“%d”,i++);‏​‏
选项:
A: 1
B: 2
C: 3
D: 死循环
答案: 【 死循环

6、单选题:
‎设已声明int型变量i和k,则下面for循环语句()。‏‎   for(i=0;k= -1,k=1; i++,k++)‏‎       printf(“****n”);‏‎‏
选项:
A: 判断循环结束的条件不合法
B: 是无限循环
C: 循环依次也不执行
D: 循环只执行一次
答案: 【 是无限循环

7、单选题:
‏以下程序中,for循环体执行的次数是()。‍‏#define  N  2‍‏#define  M  1+ N‍‏#define  K  M+1*M/2‍‏void  main()‍‏{ ‍‏    int   i;‍‏    for( i= 1;i < K; i++)‍‏    { …….. }‍‏   …….‍‏}‍‏‍
选项:
A: 4
B: 5
C: 3
D: 6
答案: 【 4

8、单选题:
‎与语句while(!x)等价的语句是( )。​
选项:
A: while(x==0) 
B: while(x!=0)
C: while(x!=1)
D: while(~x)
答案: 【 while(x==0) 

9、单选题:
‍以下关于循环的描述中,错误的是( )。​
选项:
A: 可以用for语句实现的循环一定可以用while语句实现
B: 可以用while语句实现的循环一定可以用for语句实现
C:  可以用do…while语句实现的循环一定可以用while语句实现
D: do…while语句与while语句的区别仅仅是关键字while的位置不同
答案: 【 do…while语句与while语句的区别仅仅是关键字while的位置不同

10、单选题:
​在下列选项中,没有构成死循环的程序段是____‌
选项:
A: int i=100;while (1){ i=i%100+1; if (i>100) break;}
B: for( ; ; );
C: int s=26;  while (s) --s; 
D: int k=1000;do {++k;} while (k>=1000);
答案: 【 int s=26;  while (s) --s; 

11、单选题:
‌下面程序执行后的输出结果是()。​‌#include <stdio.h>​‌void main( )  ​‌{  ​‌   int  i,n=0; ​‌   for(i=2;i<5;i++) ​‌    { ​‌       do ​‌       { if(i%3) continue;  ​‌          n++;  ​‌       } while(!i); ​‌    n++;  ​‌   }  ​‌ printf("n=%dn",n);  ​‌} ​‌​
选项:
A: n=5
B: n=2
C: n=3
D: n=4
答案: 【 n=4

12、单选题:
​以下正确的描述是()‏
选项:
A: continue语句的作用是结束整个循环的执行
B: 只能在循环体内和switch语句体内使用break语句
C:  在循环体内使用break语句或continue语句的作用相同
D:  从多层循环嵌套中退出时, 只能使用goto语句
答案: 【 只能在循环体内和switch语句体内使用break语句

13、单选题:
‌(201203二级C)下面程序运行后的输出结果是()。‎‌ #include <stdio.h>‎‌ void main()‎‌  { ‎‌    int s = 0, n;‎‌    for(n = 0; n < 3; n++)‎‌     {‎‌      switch(s)‎‌         { case 0:‎‌          case 1:s += 1;‎‌          case 2:s += 2; break;‎‌          case 3:s += 3;‎‌          default: s += 4;‎‌          }‎‌      printf("%d", s);‎‌      }‎‌   }‎‌‎
选项:
A: 124
B: 136 
C: 31014
D: 3610
答案: 【 31014

14、单选题:
‌如下程序计算10名同学,每位同学4门课程的总分,并输出‏‌void main()‏‌{  ‏‌     int n,k;‏‌     float score,sum,ave;‏‌     sum=0.0;‏‌     for(n=1;n<=10;n++)‏‌      {‏‌        for(k=1;k<=4;k++)‏‌          {‏‌            scanf("%f",&score);   ‏‌            sum+=score;‏‌           }‏‌        ave=sum/4.0;‏‌        printf("NO%d:%fn",n,ave);‏‌       }‏‌}‏‌上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。‏
选项:
A: sum=0.0;
B: sum+=score;
C: ave=sum/4.0;
D: printf("NO%d:%fn",n,ave);
答案: 【 sum=0.0;

15、单选题:
‌分析程序执行过程,x的值为(  )。 ​‌    void main()​‌     {​‌        int x,y;​‌        for(x=1,y=1;x<=50;x++)​‌        {​‌          if(y>=15)  break;    ​‌          if(y%5==1)​‌            {​‌              y+=5;​‌              continue;​‌              }​‌          y-=2;​‌         }​‌         printf("%dn",x);​‌      }​‌​
选项:
A: 3
B: 6
C: 4
D: 5
答案: 【 4

16、单选题:
​设x和y均为int型变量,则执行下的循环后,y值为‏​      for(y=1,x=1;y<=50;y++)‏​     {‏​    if(x>=8)break;‏​       if (x%2==1)‏​        {  x+=5;   continue;}‏​        x-=3;‏​     }‏​‏
选项:
A: 2
B: 4
C: 6
D: 8
答案: 【 4

17、单选题:
​设j为int型变量,则下面for循环语句的执行结果是‍​     for( j=9;j>3;j--)‍​     {‍​ if(j%3)break;‍​                 --j;‍​ --j;‍​     }‍​  printf("%d",j);‍​‍
选项:
A: 9 
B: 6
C: 3
D: 0
答案: 【 3

18、单选题:
‎请读程序片段:​‎    int a,b;​‎    for(a=1,b=1; a<=80; a++)​‎    {​‎        if(b>=20)​‎            break;​‎        if(b%2==1)​‎        {​‎            b+=2;​‎            continue;​‎        }​‎        b-=6;​‎    }​‎    printf("%dn",a);​‎上面程序的输出结果是​‎​
选项:
A: 8 
B: 9
C: 10
D: 11
答案: 【 11

19、单选题:
‏请读程序片段:‏‏    int a,b;‏‏    for(a=1,b=1; a<=80; a++,b++)‏‏    {‏‏        if(b<20)‏‏            continue;‏‏        if(b%2==1)‏‏        {‏‏            b+=2;‏‏            break;‏‏        }‏‏     }‏‏    printf("%dn",a);‏‏上面程序的输出结果是‏‏‏
选项:
A: 80
B: 20
C: 21
D: 23
答案: 【 21

20、单选题:
‍设j为int型变量,则下面for循环语句的执行结果是‌‍     for( j=9;j>3;j--);‌‍     {‌‍ j-=2;‌‍     }‌‍    printf("%dn",j);‌‍‌
选项:
A: 3
B: 2
C: 1
D: 死循环
答案: 【 1

21、单选题:
‎如下程序中实现sum=1+2+3+...+n的程序是‍
选项:
A: int sum=0,i;for(i=0;i<n;i++)sum+=i;
B: int sum=0,i;for(i=0;i<n;i++); sum+=i;
C: int sum=0,i;for(i=1;i<=n;i++); sum+=i;
D: int sum=0,i;for(i=1;i<=n;i++) sum+=i;
答案: 【 int sum=0,i;for(i=1;i<=n;i++) sum+=i;

22、单选题:
‏假设整型变量n,m,i已经声明和赋值,且大于n>2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?‌
选项:
A: m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
B: m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;break; }
C: m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;continue; }
D: m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;continue; }
答案: 【 m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }

23、单选题:
‎使用穷举法求解如下(1)(2)构成的方程组‎‎ (1)x+y=100;‎‎ (2)2*x+y/3=100;‎‎如下程序中正确的是?‎‎‎
选项:
A:   int x,y;  for(x=1;x<100;x++){    for(y=1;y<100;y++){        if(x+y==100&& 2*x+y/3==100){            printf("x=%d,y=%dn",x,y);        }    }  }
B:   int x,y;  for(x=1;x<100;x++){    for(y=1;y<100;y++){        if(x+y==100&& 6*x+y==300){            printf("x=%d,y=%dn",x,y);        }    }  }
C:   int x,y;  for(x=1;x<100;x++){    for(y=1;y<100;y++){        if(x+y=100&& 2*x+y/3=100){            printf("x=%d,y=%dn",x,y);        }    }
D:   int x,y;  for(x=1;x<100;x++){    for(y=1;y<100;y++){        if(x+y=100&& 6*x+y=300){            printf("x=%d,y=%dn",x,y);        }    }
答案: 【   int x,y;  for(x=1;x<100;x++){    for(y=1;y<100;y++){        if(x+y==100&& 6*x+y==300){            printf("x=%d,y=%dn",x,y);        }    }  }

第6周 集合数据及其处理

本周测试

1、单选题:
‎以下不正确的语句是________。​‎​
选项:
A: double x[3]={2.0,4.0,6,0,8.0,10.0};
B: char c1[]={'1','2','3','4','5'};
C: char c2[]={'x10','xa','x8'};
D: int y[]={0,1,3,5,7,9};
答案: 【 int y[]={0,1,3,5,7,9};

2、单选题:
‏若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。‍‏‍
选项:
A: 3
B: 2
C: 无确定值
D: 4
答案: 【 3

3、单选题:
‏引用数组元素时,数组下标可以是____‏
选项:
A: 实型常量
B: 实型变量
C: 整型常量
D: 值在[0,n-1]之间的整型表达式,其中n为数组长度
答案: 【 值在[0,n-1]之间的整型表达式,其中n为数组长度

4、单选题:
‍定义了一维int型数组a[10]后,下面错误的引用是_____‏
选项:
A: a[10]=2;
B: a[1]=a[2]*a[0];
C: a[0]=1;
D: a[0]=5*2;
答案: 【 a[10]=2;

5、单选题:
‌若有说明:int a[3][4];则对a数组元素的非法引用是________‎‌‎
选项:
A: a[0][2*1]
B: a[0][4]
C: a[1][3]
D: a[4-2][0]
答案: 【 a[0][4]

6、单选题:
‌以下能对二维数组a进行正确初始化的语句是________。‌‌‌
选项:
A: int a[][3]={{1,0,1},{},{1,1}};
B: int a[2][]={{1,0,1},{5,2,3}};
C: int a[][2]={{1,2,3},{4,5,6}};
D: int a[][4]={{1,2,3},{4,5},{6}};
答案: 【 int a[][4]={{1,2,3},{4,5},{6}};

7、单选题:
​若二维数组a有m列,则在a[i][j]前的元素个数为________。‌​‌
选项:
A: j*m+i
B: i*m+j+1
C: i*m+j-1
D: i*m+j
答案: 【 i*m+j

8、单选题:
‍若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是‌‍‌
选项:
A: 无确定值
B: 3
C: 2
D: 1
答案: 【 3

9、单选题:
定义如下变量和数组:‎    int k;‎    int a[3][3]={1,2,3,4,5,6,7,8,9};‎    则下面语句的输出结果是________。‎  for(k=0;k<3;k++) printf("%d ",a[k][2-k]);‎‍‎
选项:
A: 3 6 9
B: 1 5 9
C: 1 4 7
D: 3 5 7
答案: 【 3 5 7

10、单选题:
​下面程序的运行结果是________‎​int main()‎​{ ‎​ int a[6],i;‎​ for(i=1;i<6;i++)‎​ { ‎​ a[i]=9*(i-2+4*(i>3))%5;‎​ printf("%2d",a[i]);‎​ }‎​ return 0;‎​}‎‎
选项:
A: -4 0 4 0 4
B: -4 0 4 4 3
C: -4 0 4 0 3
D: -4 0 4 4 0
答案: 【 -4 0 4 4 3

11、单选题:
‎定义如下的变量和数组int i;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果‌‎for(i=0;i<2;i++)printf("%d ",y[1-i][i+1]);‌‎‌
选项:
A: 10 4
B: 8 12
C: 6 10
D: 10 6
答案: 【 10 6

12、单选题:
以下程序段给数组所有的元素的输入数据,请选择正确的答案‎#include<stdio.h>‎main()‎{‎float x[5],m=0;‎while(m<5)‎scanf("%.2f",______);‎‎}‎‎‎
选项:
A: x+m
B: &x[m+1]
C: &x[++m]
D: &x[m++]
答案: 【 &x[m++]

13、单选题:
​要求下面的程序运行后,显示如下结果:‏​2  10   4   6‏​1   5   2   3‏​2   4   7   8‏​5   1   3   2‏​则程序中的划线处应填入________.‏​#include <stdio.h>‏​void main( )‏​{ int a[4][4]={ ________ };‏​  int i,j;‏​  for(i=0;i<4;i++)‏​    {for(j=0;j<4;j++)  printf("%4d",a[i][j]);‏​     printf("n");‏​ } ‏​‏
选项:
A: {1,5,2,3},{2,4,7,8},{5,1,3,2}
B: {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
C: {5,1,3,2},{2,4,7,8},{1,5,2,3}
D: {2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}
答案: 【 {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}

14、单选题:
‍执行下面的程序段后,变量a中的值为​‍int  a=3, s[5]={1};​‍s[0]=a;  ​‍a=s[2]*10;​‍​
选项:
A: 0 
B: 33
C: 30
D: 10
答案: 【 0 

15、单选题:
‍执行下面的程序段后,变量a中的值为‎‍int  a=3, s[5]={1,2};‎‍s[0]=a;  ‎‍a=s[2]*10;‎‍‎
选项:
A: 0
B: 30
C: 20
D: 10
答案: 【 0

16、单选题:
‎下列程序执行后的输出结果是‎‎int a[3][3]={1,2,3,4,5,6,7,8,9};‎‎printf("%d n",a[1][2]);‎‎‎
选项:
A: 2
B: 3
C: 5 
D: 6
答案: 【 6

17、单选题:
‎下列程序执行后的输出结果是‍‎int a[10]={1,2,3,4,5,6,7,8,9,10};‍‎putchar(a[1]+'a');‍‎‍
选项:
A: c 
B: 67
C: 'a'
D: 68
答案: 【 c 

18、单选题:
‎以下定义一维数组语句中错误的是‏
选项:
A: int a[8]={0,1,2,3,4,5};
B: double a[]={0,1,2,3,4,5};
C: int a[]={'A','B','C'};
D: int a[5]="012345";
答案: 【 int a[5]="012345";

19、单选题:
‎如下程序的输出结果是​‎int main()​‎{​‎​‎ int a[10]={1,2,2,3,3,4,5,6,7},i;​‎    int k=3;​‎ for(i=0;i<10;i++)​‎ {​‎        if(a[i]==k){​‎            printf("%3d",i);​‎        }​‎ }​‎ return 0;​‎}​‎​
选项:
A: 1 2
B: 3 4 
C: 3
D: 4
答案: 【 3 4 

20、单选题:
‌如下程序的输出结果是‏‌int main()‏‌{‏‌‏‌ int a[10]={1,2,2,3,3,4,5,6,7,8},i;‏‌    int k=3;‏‌ for(i=0;i<10;i++)‏‌ {‏‌        if(a[i]==k){‏‌            a[i]=a[i+1];‏‌        }‏‌ }‏‌ for(i=0;i<10;i++)‏‌        printf("%2d",a[i]);‏‌ return 0;‏‌}‏‌‏
选项:
A: 1 2 2 3 3 4 5 6 7 8
B: 1 2 2 3 4 4 5 6 7 8
C: 1 2 2 4 5 6 7 8 0 0
D: 1 2 2 4 5 6 7 8 8 8
答案: 【 1 2 2 3 4 4 5 6 7 8

21、单选题:
‏如下程序的输出结果是‎‏int main()‎‏{‎‏‎‏ int a[10]={1,2,2,3,3,4,5,6,7,8},i;‎‏    int k=3;‎‏ for(i=0;i<10;i++)‎‏ {‎‏        if(a[i]==k){‎‏            a[i]=a[i+1];‎‏            i--;‎‏        }‎‏ }‎‏ for(i=0;i<10;i++)‎‏        printf("%2d",a[i]);‎‏ return 0;‎‏}‎‏‎
选项:
A: 死循环
B: 1 2 2 3 4 4 5 6 7 8
C: 1 2 2 4 5 6 7 8 0 0
D: 1 2 2 4 5 6 7 8 8 8
答案: 【 死循环

22、单选题:
̴

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注