快乐学习 一个网站喵查铺子(catpuzi.com)全搞定~

中国大学MOOC 高级语言程序设计-东北大学 测验与作业答案

中国大学MOOC答案 数据帝 2024-02-08 扫描二维码
文章目录[隐藏]

第1周 程序设计入门

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

2 程序设计的基本步骤主要包括( )
喵查答案:确定数据结构,算法描述、编写程序以及程序测试
确定程序设计方法,描述数据方式、编写程序以及程序调试
确定程序实现算法、编写程序以及程序测试
数据描述,算法描述、编写程序

3 程序设计语言包括( )
高级语言
喵查答案:机器语言、汇编语言、高级语言
机器语言
汇编语言

4 实现向显示器输出信息的函数是
scanf
printfun
print
喵查答案:printf

5 如下关于C语言基本语句的说法中正确的是?
基本语句必须在一行中
喵查答案:基本语句必须以分号;作为结束标志
基本语句以回车符作为结束标志
#include 属于基本语句

6 C语言源程序中如何实现注释
喵查答案:通过  /*   */  界定的内容为注释内容。例如 /* 测试 */
 一行中\\开始的剩余部分为注释内容。例如  int a=10;\\测试
 一行中#开始的剩余部分为注释内容。例如  int a=10;#测试
 一行中@开始的剩余部分为注释内容。例如  int a=10;@测试

7 用C语言编写的程序( )
可直接被计算机硬件执行
喵查答案:经过编译方式翻译成其机器指令,并链接后可以执行
经过解释方式翻译成其机器指令后可以执行
以上说法都不对

8 一个C语言程序如何执行( )
主过程开始执行
喵查答案:主函数main()开始执行
子程序开始执行
从主程序开始执行

9 C语言中界定函数开始与结束的符号是
喵查答案:{   }
[ ]
(   )

10 如下属于C语言的基本语句的是?
#include
x=sin(100)
x=1+2
喵查答案:1+2;

11 C语言程序中主函数的名称是
喵查答案:main
MAIN
Main
WinMain

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

13 C语言程序由函数构成,且至少包括一个main函数,关于main函数定义的说法正确的是?( )
必须在源程序的开始处定义
必须在源程序的结尾处定义
函数名称可以为Main、MAIN、main
喵查答案:一个C语言程序仅仅有一个main函数

14 以下叙述中正确的是( )
用C程序实现的算法必须要有输入和输出操作
用C程序实现的算法可以没有输出但必须要有输入
喵查答案:用C程序实现的算法可以没有输入但必须要有输出
用C程序实现的算法可以既没有输入也没有输出

15 面向过程的高级语言包括( )
C,JAVA
喵查答案:C,BASIC
C++.NET,Python
C#,LISP

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

1 sizeof(float)是( )
一个双精度型表达式
喵查答案:一个整型表达式
一个函数调用
一个不合法的表达式

2 不合法的c语言标识符是( )
_abc
MD
Int
喵查答案:x.c

3 可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)
喵查答案:(x<0?-x:x)
(x>0?-x:x)
(x<0&&x=-x)
(x>0||x=-x)

4 判断char型变量c1是否为大写字母的正确表达式是( )
‘A'<=c1<='Z'
(c1>=’A’)&(c1<='Z')
喵查答案:(c1>=’A’)&&(c1<='Z')
(‘A’=c1)

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

6 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
大写字母
喵查答案:减号、加号、乘号、除号
数字字符
下划线

7 关于如下语句的输出结果为const  int a=100;a=a+100;printf(“%d”,a);
100
200
300
喵查答案:程序存在错误无法运行

8 若有char ch=’A;则表达式ch=(ch>=’A’&&ch<='Z')?(ch+32):ch的值是( )
A
喵查答案:a
Z
z

9 (2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()
喵查答案:只有整型数在允许范围内能准确无误的表示,实型数会有误差
只要在允许范围内整型数和实型数都能精确的表示
只有实型数在允许范围内能精确无误的表示,整型数会有误差
只有用八进制表示的数才不会有误差

10 不正确的变量声明是( )
unsigned int ui
short int s
喵查答案:double int a
int I,j,k

11 正确表达式数学不等式 10<x<100的C语言表达式是?(假设x已经声明)()
10<x<100
10>x>100
喵查答案:10<x && x<100
10<x and x<100

12 c语言提供的合法的数据类型关键字是()
Int
喵查答案:long
CHAR
integer

13 已知int a,b,c;经过如下运算后c的值()a=b=c=2;c=a&++b;
0
1
喵查答案:2
3

14 已知int a,b,c;如下运算a=b=c=100;++a>b++||c++;变量c的值是()
喵查答案:100
200
101
201

15 表达式 (x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)
100
喵查答案:200
101
201

16 正确表达式数学不等式 |x|<100 且x不等于0的C语言表达式是?(假设x已经声明)()
喵查答案:-100<x && x<100 && x!=0
-100<x && x<100 && x0
-100<x<0 &&  0<x<100
-100<x<0 ||  0<x<100

17 以下表达式不等价的一组是( )
a&=b与a=a&b
a|=b与a=a|b
喵查答案:a!=b与a=a!b
a^=b与a=a^b

18 若有int n=6;表达式n%=n+=n-=n*n的值为( )
10
喵查答案:0
12
6

19 以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )
int x=y=z=5;
int x,y,z=5;
喵查答案:int x=5,y=5,z=5;
x=y=z=5;

20 已知char a=’\17’,变量a中( )
喵查答案:存储1个字符
存储2个字符
存储3个字符
错误的变量声明与初始化

21 sizeof(float)是( )
一个双精度型表达式
喵查答案:一个整型表达式
一个函数调用
一个不合法的表达式

22 不合法的c语言标识符是( )
_abc
MD
Int
喵查答案:x.c

23 可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)
喵查答案:(x<0?-x:x)
(x>0?-x:x)
(x<0&&x=-x)
(x>0||x=-x)

24 判断char型变量c1是否为大写字母的正确表达式是( )
‘A'<=c1<='Z'
(c1>=’A’)&(c1<='Z')
喵查答案:(c1>=’A’)&&(c1<='Z')
(‘A’=c1)

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

26 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
大写字母
喵查答案:减号、加号、乘号、除号
数字字符
下划线

27 关于如下语句的输出结果为const  int a=100;a=a+100;printf(“%d”,a);
100
200
300
喵查答案:程序存在错误无法运行

28 若有char ch=’A;则表达式ch=(ch>=’A’&&ch<='Z')?(ch+32):ch的值是( )
A
喵查答案:a
Z
z

29 (2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()
喵查答案:只有整型数在允许范围内能准确无误的表示,实型数会有误差
只要在允许范围内整型数和实型数都能精确的表示
只有实型数在允许范围内能精确无误的表示,整型数会有误差
只有用八进制表示的数才不会有误差

30 不正确的变量声明是( )
unsigned int ui
short int s
喵查答案:double int a
int I,j,k

31 正确表达式数学不等式 10<x<100的C语言表达式是?(假设x已经声明)()
10<x<100
10>x>100
喵查答案:10<x && x<100
10<x and x<100

32 c语言提供的合法的数据类型关键字是()
Int
喵查答案:long
CHAR
integer

33 已知int a,b,c;经过如下运算后c的值()a=b=c=2;c=a&++b;
0
1
喵查答案:2
3

34 已知int a,b,c;如下运算a=b=c=100;++a>b++||c++;变量c的值是()
喵查答案:100
200
101
201

35 表达式 (x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)
100
喵查答案:200
101
201

36 正确表达式数学不等式 |x|<100 且x不等于0的C语言表达式是?(假设x已经声明)()
喵查答案:-100<x && x<100 && x!=0
-100<x && x<100 && x0
-100<x<0 &&  0<x<100
-100<x<0 ||  0<x<100

37 以下表达式不等价的一组是( )
a&=b与a=a&b
a|=b与a=a|b
喵查答案:a!=b与a=a!b
a^=b与a=a^b

38 若有int n=6;表达式n%=n+=n-=n*n的值为( )
10
喵查答案:0
12
6

39 以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )
int x=y=z=5;
int x,y,z=5;
喵查答案:int x=5,y=5,z=5;
x=y=z=5;

40 已知char a=’\17’,变量a中( )
喵查答案:存储1个字符
存储2个字符
存储3个字符
错误的变量声明与初始化

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

42

关于如下语句的输出结果为

double a=12.34;

int c=0;

c=((int)a)++;

printf(“%d”,c);
12.34
12
13
喵查答案:程序存在错误无法运行

43 关于如下语句的输出结果为double a=12.34;int c=0;c=(int)a++;printf(“%d”,c);
12.34
13.34
喵查答案:12
13

44 (2009.09全国二级C题)表达式(int)((double)9/2)-(9)%2的计算结果是( )
0
喵查答案:3
4
5

45 设有定义:int  x=2;,以下表达式中,值不为6的是
x*=x+1
x++,2*x
x*=(1+x)
喵查答案:2*x, x+=2

46 以下选项中不属于C语言的基本类型的是( )
signed short int
unsigned long int
unsigned int
喵查答案:long char

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

1 假设 float d=12.3456,则表达式printf(” % 10.2f”,(int)d/10.0)的输出结果为
12.00
12.34
1.23
喵查答案:1.20

2 假设 unsigned u=0,从键盘正确读入一个整数给u的语句是
scanf(“%d”,u);
喵查答案:scanf(“%u”,&u);
scanf(“%ud”,u);
 scanf(“%ld”,&u);

3

数字字符0的ASCII值为48,若有以下程序

main()

{   

    char  a=’a’,b=’b’;

    printf(“%c,”,b++);

    printf(“%d\n”,b-a);

}

程序运行后的输出结果是
0,2
c,2
喵查答案:b,2
2,50

4 有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )
132
1,3,2
喵查答案:a=1,b=3,c=2 
a=1 b=3 c=2

5 若运行以下程序时,从键盘输入25,15,10,则输出结果为( )。 void main() { int a1,a2,a3; scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d\n”,a1+a2+a3) ;}
a1+a2+a3=50
a+a2+a3=25
a1+a2+a3=10
喵查答案:不确定值

6

(2012.09全国二级C题)若有定义和语句:

int a,b;

scanf(“%d,%d”,&a,&b);

以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。
3,5,
3,5,4
喵查答案:3  5
3,5

7 如下程序段执行的结果为    int a=100,b=200,c;    c=!a+(b>>2) % 10;    printf(“%d”,c);
喵查答案:0
10
80
101

8

有以下程序

void main(){

int a=6,b=7;

printf(“a=%%d,b=%%d”,a,b);

}

输出结果是( )。
a=b,y=3
喵查答案:a=%d,b=%d
a=%6,b=%7
a=%%6,b=%%d

9 下面语句中正确C语言语句是( )
printf(“%c\n”,”student”);
printf(“%c\n”,”c”);
printf(“%s\n”,&a);
喵查答案:printf(“%s\n”,”hello”);

10

如下程序段执行的结果为

int a=100,b=200,c;

c= a>b&&b+=100;

c=b++;

printf(“%d”,c);
喵查答案:200
201
300
301

11 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) *a++;printf(“%d”,c);
喵查答案:200
201
202
203

12 假设 float d=12.3456,则表达式printf(” % 10.2f”,d)的输出结果为
喵查答案:12.35
12.34
1.20
12.0

13 若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值
喵查答案:1
2
3
4

14 C语言程序设计中,以下叙述中正确的是()。
喵查答案:函数表达式printf(“%d%d”,1,2+100)是正确的表达式
如果a为整型变量,可以通过scanf(“%f”,&a)为a赋值
在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

15 c语言标准输出文件stdout是指( )
键盘
喵查答案:显示器
软盘
硬盘

16 有以下程序main(){   int  a,b,d=25;   a=d/10%9;   b=a&&(-1);   printf(“%d,%d\n”,a,b);}程序运行后的输出结果是
6,1
喵查答案:2,1
6,0
2,0

17

阅读程序,指出输出结果是( )。 

void main()

{

char c1,c2,c3;

c1=’a’;

c2=’z’;

c3=c2-c1;

printf(“%c,%c,%d “,c1,c2,c3);

}
喵查答案:a ,z ,25
A,Z,25
a,z,\
97,122,25

18 x、y、z被声明为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
INPUT x、y、z;
喵查答案:scanf(“%d%d%d”,&x,&y,&z);
scanf(“%d%d%d”,x,y,z); 
read(“%d%d%d”,&x,&y,&z);

19 C语言设计中下列描述中正确的是( )
喵查答案:所有的输入/输出都是通过调用库函数处理的
所有的输入/输出都是通过输入/输出语句实现的
getchar和putchar可以省略#include
在输入/输出格式中的*表示跳过数据的含义

20 c语言中标准输入文件stdin是指( )
喵查答案:键盘
显示器
鼠标
硬盘

21 假设 float d=12.3456,则表达式printf(” % 10.2f”,(int)d/10.0)的输出结果为
12.00
12.34
1.23
喵查答案:1.20

22 假设 unsigned u=0,从键盘正确读入一个整数给u的语句是
scanf(“%d”,u);
喵查答案:scanf(“%u”,&u);
scanf(“%ud”,u);
 scanf(“%ld”,&u);

23

数字字符0的ASCII值为48,若有以下程序

main()

{   

    char  a=’a’,b=’b’;

    printf(“%c,”,b++);

    printf(“%d\n”,b-a);

}

程序运行后的输出结果是
0,2
c,2
喵查答案:b,2
2,50

24 有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )
132
1,3,2
喵查答案:a=1,b=3,c=2 
a=1 b=3 c=2

25 若运行以下程序时,从键盘输入25,15,10,则输出结果为( )。 void main() { int a1,a2,a3; scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d\n”,a1+a2+a3) ;}
a1+a2+a3=50
a+a2+a3=25
a1+a2+a3=10
喵查答案:不确定值

26

(2012.09全国二级C题)若有定义和语句:

int a,b;

scanf(“%d,%d”,&a,&b);

以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。
3,5,
3,5,4
喵查答案:3  5
3,5

27 如下程序段执行的结果为    int a=100,b=200,c;    c=!a+(b>>2) % 10;    printf(“%d”,c);
喵查答案:0
10
80
101

28

有以下程序

void main(){

int a=6,b=7;

printf(“a=%%d,b=%%d”,a,b);

}

输出结果是( )。
a=b,y=3
喵查答案:a=%d,b=%d
a=%6,b=%7
a=%%6,b=%%d

29 下面语句中正确C语言语句是( )
printf(“%c\n”,”student”);
printf(“%c\n”,”c”);
printf(“%s\n”,&a);
喵查答案:printf(“%s\n”,”hello”);

30

如下程序段执行的结果为

int a=100,b=200,c;

c= a>b&&b+=100;

c=b++;

printf(“%d”,c);
喵查答案:200
201
300
301

31 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) *a++;printf(“%d”,c);
喵查答案:200
201
202
203

32 假设 float d=12.3456,则表达式printf(” % 10.2f”,d)的输出结果为
喵查答案:12.35
12.34
1.20
12.0

33 若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值
喵查答案:1
2
3
4

34 C语言程序设计中,以下叙述中正确的是()。
喵查答案:函数表达式printf(“%d%d”,1,2+100)是正确的表达式
如果a为整型变量,可以通过scanf(“%f”,&a)为a赋值
在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

35 c语言标准输出文件stdout是指( )
键盘
喵查答案:显示器
软盘
硬盘

36 有以下程序main(){   int  a,b,d=25;   a=d/10%9;   b=a&&(-1);   printf(“%d,%d\n”,a,b);}程序运行后的输出结果是
6,1
喵查答案:2,1
6,0
2,0

37

阅读程序,指出输出结果是( )。 

void main()

{

char c1,c2,c3;

c1=’a’;

c2=’z’;

c3=c2-c1;

printf(“%c,%c,%d “,c1,c2,c3);

}
喵查答案:a ,z ,25
A,Z,25
a,z,\
97,122,25

38 x、y、z被声明为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
INPUT x、y、z;
喵查答案:scanf(“%d%d%d”,&x,&y,&z);
scanf(“%d%d%d”,x,y,z); 
read(“%d%d%d”,&x,&y,&z);

39 C语言设计中下列描述中正确的是( )
喵查答案:所有的输入/输出都是通过调用库函数处理的
所有的输入/输出都是通过输入/输出语句实现的
getchar和putchar可以省略#include
在输入/输出格式中的*表示跳过数据的含义

40 c语言中标准输入文件stdin是指( )
喵查答案:键盘
显示器
鼠标
硬盘

41 (2011.09全国二级C题)以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
printf(“%c\n”,’a’-32); 
喵查答案:printf(“%d\n”,’A’);
printf(“%c\n”,65); 
printf(“%c\n”,’B’-1);

42

以下程序段 :

int a=1234;

printf(“%2d\n”,a);

输出结果是( )
12
23
喵查答案:1234
提示出错,无结果

43

(2010.03全国二级C题)有以下程序:

   void  main()

  { 

       char a,b,c,d;

  scanf(“%c%c”,&a,&b);

  c=getchar(); d=getchar();

  printf(“%c%c%c%c\n”,a,b,c,d);

  }

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)

  12

  34

则输出结果是()。
1234
12
喵查答案:12      3
1234

44 有以下程序main(){       int  a,b,p;   scanf(“m=%dn=%dp=%d”,&a,&b,&p);   printf(“%d%d%d\n”,a,b,p);}若想从键盘上输入数据,使变量a中的值为12,b中的值为56,p中的值为89,则正确的输入是
喵查答案:m=12n=56p=89
m=12  n=56  p=89
a=12b=56p=89
12  56  89

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

1

以下程序

#include

main()

{

int a=2,b=3,c=0;

if(a=b)

c=a;

else

    c=b;

 

printf(“%d”,c);

}

程序的运行结果是

喵查答案:3
0
2
1

2

有以下程序

#include

main()

{

int y=9;

switch(y++)

{

case 9:y/=2;

case 8:–y;

}

printf(“%d”,y);

}

程序的运行结果是
喵查答案:4
5

3
9

3

有以下程序

#include

main()

{

int y=9;

if(y>0,y–)

if(y%3==0) printf(“%d”,–y);

printf(“%d”,y);

}

程序的运行结果是
喵查答案:8
88
99
9

4

(201203二级c)若下面程序运行时从键盘输入9,则输出结果是()。

#include

void main()

{

   int a;

   scanf(“%d”, &a);

   if(a++ < 9)

        printf(“%d\n”, a);

   else

        printf(“%d\n”, a–);

}

喵查答案:10
11
9
8

5 下列条件语句中,功能与其他语句不同的是( )
喵查答案:

if(a==0) printf(“%d\n”,x); 

else printf(“%d\n”,y); 

if(a) printf(“%d\n”,x); else printf(“%d\n”,y);

if(a==0) printf(“%d\n”,y); 

else printf(“%d\n”,x);

if (a!=0) printf(“%d\n”,x); 

else printf(“%d\n”,y);

6

阅读程序,分析输出结果是( )。

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=%d\n”,a,b);

}
喵查答案:a=2,b=2
a=3,b=3
a=1,b=1
没有正确结果

7

若执行下面的程序时从键盘输入10,则输出是( )。 

void main( )

{  

int a;

scanf(“%d”,&a);

if(++a<10)

printf(“%d\n”,a++);

else 

printf(“%d\n”,++a); 

}

喵查答案:12
11
10
9

8

阅读程序,分析输出结果是( )。 

#include

void main( )

{ 

int a=2,b=-1,c=2;

if(a)

if(b<0) c=0;

else c++;

printf(“%d\n”,c);

}
喵查答案:0
1
2
3

9

阅读程序,分析输出结果是( )。 

#include

void main()

{ 

int a=6,b=10,t;

if((a=b)>0)

t=a+b;

printf(“%d\n”,t);

}
喵查答案:20
16 
12
无输出

10

阅读程序,分析输出结果是( )。

#include

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);

}
喵查答案:x=14,y=4
x=15,y=5

x=10,y=5
x=15,y=4

11

下面程序执行后输出结果是______。

   void  main()

   {  int n=0,m=1,x=2;

      if(!n)  x-=1;

      if(m)   x-=2;

      if(x)   x-=3;  

      printf(“%d\n”,x);

   }
喵查答案:-4
2
-6
-1

12

假设变量i为整型量,比较下面两条if语句,选出正确答案______。

if(i!=0);  

if(i);
喵查答案:

两者作用等价
两者作用不同

两者作用相反

if(i)语法错

13 下述语句中,______中的if 语法有错误
喵查答案:

if(x!=y)

        scanf(“%d”,x)

else

        scanf(“%d”,y);
if(x==y); 

if(x==y)   

       x+y;

if(x==y)

     {x++;y++;}

14

执行下面语句段后的输出结果为______。

   int i=-1;

   if (i<=0)

       printf(“****\n”);

       i=2;

    else

       printf(“%%%%\n”);
喵查答案:有语法错误
**** 
%%
%%%%c

15

执行下面程序的结果为______。

void main()

{

  int a=3,b=4,t=1;

  if(a>b)

  {t=a;a=b;b=t;}

  printf(“%d”,a);

}
喵查答案:3
4
1
0

16

对下面的程序说法正确的是______。

void main()

{

int x=3,y=0,z=0;

  if(x=y+z)

    printf(“****”);

  else

    printf(“####”);

}
喵查答案:输出为####

有语法错误,不能通过编译
输出为**** 
通过编译,但是不能运行

17

如下程序的运行结果是()

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;

}
喵查答案:1
0
2
3

18

如下程序的运行结果是()

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;

}
喵查答案:1
0
2
3

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;

}
喵查答案:2
0
1
3

20

以下程序

#include

main()

{

int a=2,b=1,c=0;

if(a||b)

c=a;

else

    c=b;

 

printf(“%d”,c);

}

程序的运行结果是
喵查答案:2
0
3
1

21

以下程序

#include

main()

{

int a=2,b=3,c=0;

if(a=b)

c=a;

else

    c=b;

 

printf(“%d”,c);

}

程序的运行结果是

喵查答案:3
0
2
1

22

有以下程序

#include

main()

{

int y=9;

switch(y++)

{

case 9:y/=2;

case 8:–y;

}

printf(“%d”,y);

}

程序的运行结果是
喵查答案:4
5

3
9

23

有以下程序

#include

main()

{

int y=9;

if(y>0,y–)

if(y%3==0) printf(“%d”,–y);

printf(“%d”,y);

}

程序的运行结果是
喵查答案:8
88
99
9

24

(201203二级c)若下面程序运行时从键盘输入9,则输出结果是()。

#include

void main()

{

   int a;

   scanf(“%d”, &a);

   if(a++ < 9)

        printf(“%d\n”, a);

   else

        printf(“%d\n”, a–);

}

喵查答案:10
11
9
8

25 下列条件语句中,功能与其他语句不同的是( )
喵查答案:

if(a==0) printf(“%d\n”,x); 

else printf(“%d\n”,y); 

if(a) printf(“%d\n”,x); else printf(“%d\n”,y);

if(a==0) printf(“%d\n”,y); 

else printf(“%d\n”,x);

if (a!=0) printf(“%d\n”,x); 

else printf(“%d\n”,y);

26

阅读程序,分析输出结果是( )。

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=%d\n”,a,b);

}
喵查答案:a=2,b=2
a=3,b=3
a=1,b=1
没有正确结果

27

若执行下面的程序时从键盘输入10,则输出是( )。 

void main( )

{  

int a;

scanf(“%d”,&a);

if(++a<10)

printf(“%d\n”,a++);

else 

printf(“%d\n”,++a); 

}

喵查答案:12
11
10
9

28

阅读程序,分析输出结果是( )。 

#include

void main( )

{ 

int a=2,b=-1,c=2;

if(a)

if(b<0) c=0;

else c++;

printf(“%d\n”,c);

}
喵查答案:0
1
2
3

29

阅读程序,分析输出结果是( )。 

#include

void main()

{ 

int a=6,b=10,t;

if((a=b)>0)

t=a+b;

printf(“%d\n”,t);

}
喵查答案:20
16 
12
无输出

30

阅读程序,分析输出结果是( )。

#include

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);

}
喵查答案:x=14,y=4
x=15,y=5

x=10,y=5
x=15,y=4

31

下面程序执行后输出结果是______。

   void  main()

   {  int n=0,m=1,x=2;

      if(!n)  x-=1;

      if(m)   x-=2;

      if(x)   x-=3;  

      printf(“%d\n”,x);

   }
喵查答案:-4
2
-6
-1

32

假设变量i为整型量,比较下面两条if语句,选出正确答案______。

if(i!=0);  

if(i);
喵查答案:

两者作用等价
两者作用不同

两者作用相反

if(i)语法错

33 下述语句中,______中的if 语法有错误
喵查答案:

if(x!=y)

        scanf(“%d”,x)

else

        scanf(“%d”,y);
if(x==y); 

if(x==y)   

       x+y;

if(x==y)

     {x++;y++;}

34

执行下面语句段后的输出结果为______。

   int i=-1;

   if (i<=0)

       printf(“****\n”);

       i=2;

    else

       printf(“%%%%\n”);
喵查答案:有语法错误
**** 
%%
%%%%c

35

执行下面程序的结果为______。

void main()

{

  int a=3,b=4,t=1;

  if(a>b)

  {t=a;a=b;b=t;}

  printf(“%d”,a);

}
喵查答案:3
4
1
0

36

对下面的程序说法正确的是______。

void main()

{

int x=3,y=0,z=0;

  if(x=y+z)

    printf(“****”);

  else

    printf(“####”);

}
喵查答案:输出为####

有语法错误,不能通过编译
输出为**** 
通过编译,但是不能运行

37

如下程序的运行结果是()

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;

}
喵查答案:1
0
2
3

38

如下程序的运行结果是()

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;

}
喵查答案:1
0
2
3

39

如下程序的运行结果是()

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;

}
喵查答案:2
0
1
3

40

以下程序

#include

main()

{

int a=2,b=1,c=0;

if(a||b)

c=a;

else

    c=b;

 

printf(“%d”,c);

}

程序的运行结果是
喵查答案:2
0
3
1

41

有以下程序

#include

main()

{

int a=2,b=1,c=0;

if(a&b)

c=a;

else

    c=b;

 

printf(“%d”,c);

}

程序的运行结果是
喵查答案:1
0
2
3

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

1 以下程序中,for循环体执行的次数是()。#define  N  2#define  M  1+ N#define  K  M+1*M/2void  main(){     int   i;    for( i= 1;i < K; i++)    { …….. }   …….}
喵查答案:4
5
3
6

2 设已声明int型变量i和k,则下面for循环语句()。   for(i=0;k= -1,k=1; i++,k++)       printf(“****\n”);
判断循环结束的条件不合法
喵查答案:是无限循环
循环依次也不执行
循环只执行一次

3 以下程序段执行后的输出结果(   )。int i;   for(i=1; ; i++)     printf(“%d”,i++);
1
2
3
喵查答案:死循环

4 已知int t=0; while(t=1) {…} 则以下叙述正确的是()
循环控制表达式的值为0
喵查答案:循环控制表达式的值为1
循环控制表达式不合法
以上说法都不对

5 若有语句while((ch=getchar())==’e’) printf(“*”);当输入字符串abcde时,while循环体执行()次。
1次
死循环
喵查答案:0次
5次

6 下面程序的运行结果是( )#include int  main(){    int c1=2, c2=0;    while(!c2–)      printf(“%d,  %d”,  c1–,  c2);    return  0;}
陷入死循环
不输出任何内容
喵查答案:输出2, -1 
输出2, 0

7 对于循环语句while(1); 描述正确的是( )。
喵查答案:死循环 
循环一次 
不执行循环体 
编译有错

8 使用穷举法求解如下(1)(2)构成的方程组 (1)x+y=100; (2)2*x+y/3=100;如下程序中正确的是?
  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=%d\n",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=%d\n",x,y);        }    }  }
  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=%d\n",x,y);        }    }
  int x,y;  for(x=1;x<100;x++){    for(y=1;y2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?
喵查答案:m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;continue; }
m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;continue; }

10 如下程序中实现sum=1+2+3+…+n的程序是
int sum=0,i;for(i=0;i<n;i++)sum+=i;
int sum=0,i;for(i=0;i<n;i++); sum+=i;
int sum=0,i;for(i=1;i<=n;i++); sum+=i;
喵查答案:int sum=0,i;for(i=1;i<=n;i++) sum+=i;

11 设j为int型变量,则下面for循环语句的执行结果是     for( j=9;j>3;j–);     { j-=2;     }    printf(“%d\n”,j);
3
2
喵查答案:1
死循环

12 请读程序片段:    int a,b;    for(a=1,b=1; a<=80; a++,b++)    {        if(b<20)            continue;        if(b%2==1)        {            b+=2;            break;        }     }    printf("%d\n",a);上面程序的输出结果是
80
20
喵查答案:21
23

13 请读程序片段:    int a,b;    for(a=1,b=1; a=20)            break;        if(b%2==1)        {            b+=2;            continue;        }        b-=6;    }    printf(“%d\n”,a);上面程序的输出结果是
8 
9
10
喵查答案:11

14 设j为int型变量,则下面for循环语句的执行结果是     for( j=9;j>3;j–)     { if(j%3)break;                 –j; –j;     }  printf(“%d”,j);
9 
6
喵查答案:3
0

15 设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;     }
2
喵查答案:4
6
8

16 分析程序执行过程,x的值为(  )。     void main()     {        int x,y;        for(x=1,y=1;x=15)  break;              if(y%5==1)            {              y+=5;              continue;              }          y-=2;         }         printf(“%d\n”,x);      }
3
6
喵查答案:4
5

17 如下程序计算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:%f\n",n,ave);       }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
喵查答案:sum=0.0;
sum+=score;
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);

18 (201203二级C)下面程序运行后的输出结果是()。 #include  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);      }   }
124
136 
喵查答案:31014
3610

19 以下正确的描述是()
continue语句的作用是结束整个循环的执行
喵查答案:只能在循环体内和switch语句体内使用break语句
 在循环体内使用break语句或continue语句的作用相同
 从多层循环嵌套中退出时, 只能使用goto语句

20 下面程序执行后的输出结果是()。#include void main( )  {     int  i,n=0;    for(i=2;i<5;i++)     {        do        { if(i%3) continue;            n++;         } while(!i);     n++;     }   printf("n=%d\n",n);  } 
n=5
n=2
n=3
喵查答案:n=4

21 以下程序中,for循环体执行的次数是()。#define  N  2#define  M  1+ N#define  K  M+1*M/2void  main(){     int   i;    for( i= 1;i < K; i++)    { …….. }   …….}
喵查答案:4
5
3
6

22 设已声明int型变量i和k,则下面for循环语句()。   for(i=0;k= -1,k=1; i++,k++)       printf(“****\n”);
判断循环结束的条件不合法
喵查答案:是无限循环
循环依次也不执行
循环只执行一次

23 以下程序段执行后的输出结果(   )。int i;   for(i=1; ; i++)     printf(“%d”,i++);
1
2
3
喵查答案:死循环

24 已知int t=0; while(t=1) {…} 则以下叙述正确的是()
循环控制表达式的值为0
喵查答案:循环控制表达式的值为1
循环控制表达式不合法
以上说法都不对

25 若有语句while((ch=getchar())==’e’) printf(“*”);当输入字符串abcde时,while循环体执行()次。
1次
死循环
喵查答案:0次
5次

26 下面程序的运行结果是( )#include int  main(){    int c1=2, c2=0;    while(!c2–)      printf(“%d,  %d”,  c1–,  c2);    return  0;}
陷入死循环
不输出任何内容
喵查答案:输出2, -1 
输出2, 0

27 对于循环语句while(1); 描述正确的是( )。
喵查答案:死循环 
循环一次 
不执行循环体 
编译有错

28 使用穷举法求解如下(1)(2)构成的方程组 (1)x+y=100; (2)2*x+y/3=100;如下程序中正确的是?
  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=%d\n",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=%d\n",x,y);        }    }  }
  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=%d\n",x,y);        }    }
  int x,y;  for(x=1;x<100;x++){    for(y=1;y2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?
喵查答案:m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;continue; }
m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;continue; }

30 如下程序中实现sum=1+2+3+…+n的程序是
int sum=0,i;for(i=0;i<n;i++)sum+=i;
int sum=0,i;for(i=0;i<n;i++); sum+=i;
int sum=0,i;for(i=1;i<=n;i++); sum+=i;
喵查答案:int sum=0,i;for(i=1;i<=n;i++) sum+=i;

31 设j为int型变量,则下面for循环语句的执行结果是     for( j=9;j>3;j–);     { j-=2;     }    printf(“%d\n”,j);
3
2
喵查答案:1
死循环

32 请读程序片段:    int a,b;    for(a=1,b=1; a<=80; a++,b++)    {        if(b<20)            continue;        if(b%2==1)        {            b+=2;            break;        }     }    printf("%d\n",a);上面程序的输出结果是
80
20
喵查答案:21
23

33 请读程序片段:    int a,b;    for(a=1,b=1; a=20)            break;        if(b%2==1)        {            b+=2;            continue;        }        b-=6;    }    printf(“%d\n”,a);上面程序的输出结果是
8 
9
10
喵查答案:11

34 设j为int型变量,则下面for循环语句的执行结果是     for( j=9;j>3;j–)     { if(j%3)break;                 –j; –j;     }  printf(“%d”,j);
9 
6
喵查答案:3
0

35 设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;     }
2
喵查答案:4
6
8

36 分析程序执行过程,x的值为(  )。     void main()     {        int x,y;        for(x=1,y=1;x=15)  break;              if(y%5==1)            {              y+=5;              continue;              }          y-=2;         }         printf(“%d\n”,x);      }
3
6
喵查答案:4
5

37 如下程序计算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:%f\n",n,ave);       }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
喵查答案:sum=0.0;
sum+=score;
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);

38 (201203二级C)下面程序运行后的输出结果是()。 #include  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);      }   }
124
136 
喵查答案:31014
3610

39 以下正确的描述是()
continue语句的作用是结束整个循环的执行
喵查答案:只能在循环体内和switch语句体内使用break语句
 在循环体内使用break语句或continue语句的作用相同
 从多层循环嵌套中退出时, 只能使用goto语句

40 下面程序执行后的输出结果是()。#include void main( )  {     int  i,n=0;    for(i=2;i<5;i++)     {        do        { if(i%3) continue;            n++;         } while(!i);     n++;     }   printf("n=%d\n",n);  } 
n=5
n=2
n=3
喵查答案:n=4

41 在下列选项中,没有构成死循环的程序段是____
int i=100;while (1){ i=i%100+1; if (i>100) break;}
for( ; ; );
喵查答案:int s=26;  while (s) –s; 
int k=1000;do {++k;} while (k>=1000);

42 以下关于循环的描述中,错误的是( )。
可以用for语句实现的循环一定可以用while语句实现
可以用while语句实现的循环一定可以用for语句实现
 可以用do…while语句实现的循环一定可以用while语句实现
喵查答案:do…while语句与while语句的区别仅仅是关键字while的位置不同

43 与语句while(!x)等价的语句是( )。
喵查答案:while(x==0) 
while(x!=0)
while(x!=1)
while(~x)

第6周 集合数据及其处理

1 下列程序执行后的输出结果是int a[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);
喵查答案:c 
67
‘a’
68

2 下列程序执行后的输出结果是int a[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d \n”,a[1][2]);
2
3
5 
喵查答案:6

3 执行下面的程序段后,变量a中的值为int  a=3, s[5]={1,2};s[0]=a;  a=s[2]*10;
喵查答案:0
30
20
10

4 执行下面的程序段后,变量a中的值为int  a=3, s[5]={1};s[0]=a;  a=s[2]*10;
喵查答案:0 
33
30
10

5 要求下面的程序运行后,显示如下结果:2  10   4   61   5   2   32   4   7   85   1   3   2则程序中的划线处应填入________.#include 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”); } 
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}

6

以下程序段给数组所有的元素的输入数据,请选择正确的答案

#include

main()

{

float x[5],m=0;

while(m<5)

scanf(“%.2f”,______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]

7 定义如下的变量和数组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]);
10 4
8 12
6 10
喵查答案:10 6

8 下面程序的运行结果是________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;}

-4 0 4 0 4
喵查答案:

-4 0 4 4 3

-4 0 4 0 3

-4 0 4 4 0

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]);

3 6 9

1 5 9

1 4 7
喵查答案:

3 5 7

10 若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是
无确定值
喵查答案:3
2
1

11 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j

12 以下能对二维数组a进行正确初始化的语句是________。
int a[][3]={{1,0,1},{},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};

13 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]

14 定义了一维int型数组a[10]后,下面错误的引用是_____
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;

15 引用数组元素时,数组下标可以是____
实型常量
实型变量
整型常量
喵查答案:值在[0,n-1]之间的整型表达式,其中n为数组长度

16 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
无确定值
4

17 如下程序的输出结果是int main(){ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};    int i; for(i=0;i<3;i++) {     int j=0;     for(j=0;j<3;j++){            a[i][3]+=a[i][j];     } } for(i=0;i<3;i++)        printf("%5d",a[i][3]); return 0;}
喵查答案:6 15 24
0 0 0
6 18 17
6 16 19

18 如下程序的输出结果是int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9};    int i; for(i=0;i<3;i++) {     int j=0;     for(j=0;ja[i][j])                a[i][3]=a[i][j];     } } for(i=0;i<3;i++)        printf("%2d",a[i][3]); return 0;}
3 6 9
1 4 7
4 8 0
喵查答案:1 5 0

19 如下程序的输出结果是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){            int j=10-1;            while(j>i){                a[j+1]=a[j];                j–;            }        } } for(i=0;i<10;i++)        printf("%2d",a[i]); return 0;}
程序存在错误
喵查答案:1 2 2 3 3 3 4 4 5 6 7 8
1 2 2 3 3 0 4 4 5 6 7 8
1 2 2 3 3 4 4 4 5 6 7 8

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){            int j;            for(j=i;j<10-1;j++)                a[j]=a[j+1];            i–;        } } for(i=0;i<10;i++)        printf("%2d",a[i]); return 0;}
死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
喵查答案:1 2 2 4 5 6 7 8 8 8

21 下列程序执行后的输出结果是int a[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);
喵查答案:c 
67
‘a’
68

22 下列程序执行后的输出结果是int a[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d \n”,a[1][2]);
2
3
5 
喵查答案:6

23 执行下面的程序段后,变量a中的值为int  a=3, s[5]={1,2};s[0]=a;  a=s[2]*10;
喵查答案:0
30
20
10

24 执行下面的程序段后,变量a中的值为int  a=3, s[5]={1};s[0]=a;  a=s[2]*10;
喵查答案:0 
33
30
10

25 要求下面的程序运行后,显示如下结果:2  10   4   61   5   2   32   4   7   85   1   3   2则程序中的划线处应填入________.#include 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”); } 
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}

26

以下程序段给数组所有的元素的输入数据,请选择正确的答案

#include

main()

{

float x[5],m=0;

while(m<5)

scanf(“%.2f”,______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]

27 定义如下的变量和数组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]);
10 4
8 12
6 10
喵查答案:10 6

28 下面程序的运行结果是________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;}

-4 0 4 0 4
喵查答案:

-4 0 4 4 3

-4 0 4 0 3

-4 0 4 4 0

29

定义如下变量和数组:

    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]);

3 6 9

1 5 9

1 4 7
喵查答案:

3 5 7

30 若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是
无确定值
喵查答案:3
2
1

31 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j

32 以下能对二维数组a进行正确初始化的语句是________。
int a[][3]={{1,0,1},{},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};

33 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]

34 定义了一维int型数组a[10]后,下面错误的引用是_____
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;

35 引用数组元素时,数组下标可以是____
实型常量
实型变量
整型常量
喵查答案:值在[0,n-1]之间的整型表达式,其中n为数组长度

36 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
无确定值
4

37 如下程序的输出结果是int main(){ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};    int i; for(i=0;i<3;i++) {     int j=0;     for(j=0;j<3;j++){            a[i][3]+=a[i][j];     } } for(i=0;i<3;i++)        printf("%5d",a[i][3]); return 0;}
喵查答案:6 15 24
0 0 0
6 18 17
6 16 19

38 如下程序的输出结果是int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9};    int i; for(i=0;i<3;i++) {     int j=0;     for(j=0;ja[i][j])                a[i][3]=a[i][j];     } } for(i=0;i<3;i++)        printf("%2d",a[i][3]); return 0;}
3 6 9
1 4 7
4 8 0
喵查答案:1 5 0

39 如下程序的输出结果是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){            int j=10-1;            while(j>i){                a[j+1]=a[j];                j–;            }        } } for(i=0;i<10;i++)        printf("%2d",a[i]); return 0;}
程序存在错误
喵查答案:1 2 2 3 3 3 4 4 5 6 7 8
1 2 2 3 3 0 4 4 5 6 7 8
1 2 2 3 3 4 4 4 5 6 7 8

40 如下程序的输出结果是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){            int j;            for(j=i;j<10-1;j++)                a[j]=a[j+1];            i–;        } } for(i=0;i<10;i++)        printf("%2d",a[i]); return 0;}
死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
喵查答案:1 2 2 4 5 6 7 8 8 8

41 如下程序的输出结果是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;}
喵查答案:死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
1 2 2 4 5 6 7 8 8 8

42 如下程序的输出结果是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;}
1 2 2 3 3 4 5 6 7 8
喵查答案:1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
1 2 2 4 5 6 7 8 8 8

43 如下程序的输出结果是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;}
1 2
喵查答案:3 4 
3
4

44 以下定义一维数组语句中错误的是
int a[8]={0,1,2,3,4,5};
double a[]={0,1,2,3,4,5};
int a[]={‘A’,’B’,’C’};
喵查答案:int a[5]=”012345″;

45 以下不正确的语句是________。
double x[3]={2.0,4.0,6,0,8.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[]={0,1,3,5,7,9};

第7周 字符数据处理

1 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]

2 定义了一维int型数组a[10]后,下面错误的引用是_____。
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;

3 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是
a数组长度小于b数组长度
喵查答案:a数组长度大于b数组长度
数组a和b的长度相同
上述说法都不对

4 若有以下说明:int x[9]={1,2,3,4,5,6,7,8,9}; char c=’a’,d,f;则数值为3的表达式是(  )
x[f-c]
x[‘c’-‘d’]
喵查答案:x[‘c’-c]
x[3]

5 引用数组元素时,数组下标可以是_____
整型常量
整型变量
整型表达式
喵查答案:可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一

6 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
4
无确定值

7 下面错误的初始化语句是_____
char str[]=”hello”;
喵查答案:char str[]={‘hello’};
char str[100]=”hello”;
char str[]={‘h’,’e’,’l’,’l’,’o’};

8 以下不正确的语句是________。
double x[5]={2.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[5]={0,1,3,5,7,9};

9 有以下程序int main(){ char a[]={1,2,3}, b[]={“123”};printf(“%s %s\n”, a, b);return 0;}
数组a和数组b均存储了字符串”123″
数组a和数组b存储的字符串长度相等
喵查答案:数组a长度小于数组b的长度
程序存在语法错误,不能运行。

10 执行下面的程序段后,输出结果为多少char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3 
4,10 
喵查答案:3,10 
 4,4

11 有以下程序int main(){ char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d %d\n”, strlen(a), strlen(b));return 0;}以下叙述中正确的是
喵查答案:在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为3
由于a数组中没有字符串结束符,长度不能确定;但b数组中字符串长度为3
由于b数组中没有字符串结束符,长度不能确定;但a数组中字符串长度为3
由于a和b数组中都没有字符串结束符,故长度都不能确定

12 要求下面的程序运行后,显示如下结果:2  10   4   61   5   2   32   4   7   85   1   3   2则程序中的划线处应填入________.#include 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"); }  
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}

13 #includemain() {int A[2][3]={1,3,5}; printf(“%d\n”,A[1][1]);}上述程序的输出结果为__________。
3
1
5
喵查答案:0

14 下面程序段的运行结果是char x[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,x);
‘a”b’
abc
ab c
喵查答案:ab

15 下面程序的运行结果是________。    #include “stdio.h”    #include “string.h”    main()    {   char a[80]=”AB”,b[80]=”LMNP”;        int i=0;        strcat(a,b);        while(a[i++]!=’\0′) b[i]=a[i];        puts(b);}
LB
ABLMNP
喵查答案:LBLMNP
AB

16 定义如下变量和数组int m;int a[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf("%d,",a[m][1-m]);
1,4
3,4
喵查答案:2,3
1,2

17 以下程序段给数组所有的元素的输入数据,请选择正确的答案#includemain(){float x[5];int m=0;while(m<5)scanf("%f",______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]

18 定义如下的变量和数组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]);
10,4
8,12
6,10
喵查答案:10,6

19 下面程序的运行结果是________。    main()    {       int a[6][6],i,j;      for(i=1;i<6;i++)      for(j=1;j<6;j++)        a[i][j]=(i/j)*(j/i);      for(i=1;i<6;i++)      { for(j=1;j<6;j++)           printf("%2d",a[i][j]);           printf("\n");}}
喵查答案: 1 0 0 0 0 0 1 0 0 0   0 0 1 0 0   0 0 0 1 0   0 0 0 0 1
1 0 0 0 10 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 0 0 0 0 1 0 0 0 1 0  0 0 1 0 0  0 1 0 0 0  1 0 0 0 0

20 下面程序的运行结果是________。    main()    {      int a[6],i;      for(i=1;i3))%5;        printf(“%2d”,a[i]);      }}
-4 0 4 0 4
喵查答案:-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0

21 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]

22 定义了一维int型数组a[10]后,下面错误的引用是_____。
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;

23 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是
a数组长度小于b数组长度
喵查答案:a数组长度大于b数组长度
数组a和b的长度相同
上述说法都不对

24 若有以下说明:int x[9]={1,2,3,4,5,6,7,8,9}; char c=’a’,d,f;则数值为3的表达式是(  )
x[f-c]
x[‘c’-‘d’]
喵查答案:x[‘c’-c]
x[3]

25 引用数组元素时,数组下标可以是_____
整型常量
整型变量
整型表达式
喵查答案:可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一

26 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
4
无确定值

27 下面错误的初始化语句是_____
char str[]=”hello”;
喵查答案:char str[]={‘hello’};
char str[100]=”hello”;
char str[]={‘h’,’e’,’l’,’l’,’o’};

28 以下不正确的语句是________。
double x[5]={2.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[5]={0,1,3,5,7,9};

29 有以下程序int main(){ char a[]={1,2,3}, b[]={“123”};printf(“%s %s\n”, a, b);return 0;}
数组a和数组b均存储了字符串”123″
数组a和数组b存储的字符串长度相等
喵查答案:数组a长度小于数组b的长度
程序存在语法错误,不能运行。

30 执行下面的程序段后,输出结果为多少char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3 
4,10 
喵查答案:3,10 
 4,4

31 有以下程序int main(){ char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d %d\n”, strlen(a), strlen(b));return 0;}以下叙述中正确的是
喵查答案:在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为3
由于a数组中没有字符串结束符,长度不能确定;但b数组中字符串长度为3
由于b数组中没有字符串结束符,长度不能确定;但a数组中字符串长度为3
由于a和b数组中都没有字符串结束符,故长度都不能确定

32 要求下面的程序运行后,显示如下结果:2  10   4   61   5   2   32   4   7   85   1   3   2则程序中的划线处应填入________.#include 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"); }  
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}

33 #includemain() {int A[2][3]={1,3,5}; printf(“%d\n”,A[1][1]);}上述程序的输出结果为__________。
3
1
5
喵查答案:0

34 下面程序段的运行结果是char x[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,x);
‘a”b’
abc
ab c
喵查答案:ab

35 下面程序的运行结果是________。    #include “stdio.h”    #include “string.h”    main()    {   char a[80]=”AB”,b[80]=”LMNP”;        int i=0;        strcat(a,b);        while(a[i++]!=’\0′) b[i]=a[i];        puts(b);}
LB
ABLMNP
喵查答案:LBLMNP
AB

36 定义如下变量和数组int m;int a[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf("%d,",a[m][1-m]);
1,4
3,4
喵查答案:2,3
1,2

37 以下程序段给数组所有的元素的输入数据,请选择正确的答案#includemain(){float x[5];int m=0;while(m<5)scanf("%f",______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]

38 定义如下的变量和数组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]);
10,4
8,12
6,10
喵查答案:10,6

39 下面程序的运行结果是________。    main()    {       int a[6][6],i,j;      for(i=1;i<6;i++)      for(j=1;j<6;j++)        a[i][j]=(i/j)*(j/i);      for(i=1;i<6;i++)      { for(j=1;j<6;j++)           printf("%2d",a[i][j]);           printf("\n");}}
喵查答案: 1 0 0 0 0 0 1 0 0 0   0 0 1 0 0   0 0 0 1 0   0 0 0 0 1
1 0 0 0 10 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 0 0 0 0 1 0 0 0 1 0  0 0 1 0 0  0 1 0 0 0  1 0 0 0 0

40 下面程序的运行结果是________。    main()    {      int a[6],i;      for(i=1;i3))%5;        printf(“%2d”,a[i]);      }}
-4 0 4 0 4
喵查答案:-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0

41 定义如下变量和数组:    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]);
3 6 9
1 5 9
1 4 7
喵查答案:3 5 7

42 若有语句:int a[][3]={{1,2},{3,4,5},{6},{7,8}};则a数组的行数是
喵查答案:4
3
2
1

43 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j

44 以下能对二维数组a进行正确初始化的语句是________。
int a[2][3]={{1,0,1},{1},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};

45 如下程序的输出结果是int  main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) {        for(j=0;books[i][j]!=0;j++){            if(books[i][0]<books[i][j])                books[i][0]= books[i][j];        } } printf(“%c”,books[0][0]); return 0;}
E
喵查答案:s
n
h

46 如下程序的输出结果是int  main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) {        strcat(books[i],”book”); } printf(“%s”,&books[i-1][3]); return 0;}
Physicalbook
sical
Physical
喵查答案:sicalbook

47 如下程序的输出结果是int main(){ int a[10]={1,2,3,3,4,5,6,7,8},i,j;    int k=3; for(i=0;i<10;i++) {        if(a[i]==k){             for(j=i;j<9;j++) a[j+1]=a[j];        } } printf(“%d”,a[5]);}
喵查答案:3
4
5
6

48 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7},i,j;    int k=3; for(i=0;i<10;i++) {        if(a[i]==k){             for(j=i;j<9;j++) a[j]=a[j+1];        } } printf(“%d”,a[5]); return 0;}
4
喵查答案:5
6
7

49 以下程序int main(){     char words[][30]={“Hi”,”NEU”,”C”,”Programming”};    int i=0;    for(i=1;i<=3;i++){        printf("%s",words[i]);    }return 0;}
HiNEUC
NEUC
喵查答案:NEUCProgramming
HiNEUCProgramming

50 有以下程序int main(){ char a[100]=”Hi”,char b[]=”NEU”;strcat(a,b);printf(“%d”,strlen(a));return 0;}输出结果为
3
4
喵查答案:5
6

第8周 函数实现代码分解和重用

1 有以下程序#include void fun(int p){  int d=2; p=d++;  printf(“%d”,p);}void main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是
32
12
喵查答案:21
22

2 以下关于return语句的叙述中正确的是
一个自定义函数中必须有一条return语句
喵查答案:一个自定义函数中可以根据不同情况设置多条return语句
定义成void类型的函数中可以有带返回值的return语句
没有return语句的自定义函数在执行结束时不能返回到调用处

3 有以下程序 int f(int a){  return a%2; }main(){ int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf(“%d\n”,d);}程序运行后的输出结果是 
喵查答案:9
11
19
21

4 如下程序的运行结果是()int f1(int x){  x=x+10;  return x;}void main(){    int a=1,k;    for(k=0;k<3;k++)    {       f1(k);       printf("%4d",k);    }}
7 9 11
6 6 6
喵查答案:0 1 2
1 2 3 

5 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(k));}
7 9 11
6 6 6
喵查答案:5 6 7
6 8 10

6 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(a));}
7 9 11
喵查答案:6 6 6
7 8 9
6 8 10

7 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long

8 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}

9 有以下程序void f(int v , int  w){   int t;   t=v;v=w;w=t;}main( ){     int x=1,y=2,z=3;   if(x>y)       f(x,y);   else if(y>z) f(y,z);       else      f(x,z);   printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1

10 有以下程序int fun(int x , int  y){  if(x<y)   return x;   return y;}void main( ){   int a= 9,b=8,c=7;    printf(“%d\n”, fun(a,b) );}程序的执行结果是
9
喵查答案:8
函数调用出错
7

11 若程序中定义了以下函数double  myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明语句是
double myadd(double  x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;

12 设函数fun的定义形式为:fun(char ch,float x){//略}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)

13 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束

14 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。void main(){   printf(“The sum=%d\n”,sum (10));}int sum(int n){   int s=0,i;   for(i=0;i<=n;i++)   ____________}
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;

15 如果定义了如下函数,int isprime(int n){ //略}此函数的不正确的声明语句是?
int isprime(int n);
isprime(int n);
喵查答案:isprime(int n){};
int isprime(int);

16 6 下面关于函数声明正确的说法
喵查答案:方便编译,避免编译错误
方便链接,避免链接错误
函数声明必须在函数体内部声明
没有什么用途

17 如下合法的函数定义
喵查答案:int mfun(int a,int b){return a+b;}
void mfun(int a,b){return a+b}
void mfun(void a,void b){return a+b;}
void mfun(int a,int b){return a+b;}

18 下面说法不属于说明函数的作用是
任务分解
代码重用
喵查答案:提高程序效率
提高程序质量

19 有以下程序int swap(int a,int b){    int t=a;    a=b;    b=t;    return t;}void main(){    int t=0;    t=swap(swap(3,5),6); printf(“%d\n”,t);}程序运行后的输出结果是
0
喵查答案:3
5
6

20 有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
fun(int y,double m); 
喵查答案:fun(10,12.5);
fun(x,fun(1,2)); 
void fun(n,x);

第9周 递归及函数结构

1 下面关于局部变量的描述中,错误的是_____。
函数的局部变量的有效范围只能在本函数
局部变量的名称不能和函数同名称
喵查答案:不同的函数中不能定义相同名称的局部变量
函数的形式参数也是局部变量

2 如果一个函数被定义为static类型,那么_____。
任何文件的函数都可以调用该函数
该函数只能被main函数调用
喵查答案:该函数能被当前源文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前源文件的函数调用,可以被其他文件的函数调用

3 有以下程序 int fun(int a){ return a%2; }main(){ int a[8]={1,3,2,4},i,d=0;  for (i=0;fun(a[i]);i++) d+=a[i];  printf(“%d\n”,d);}程序运行后的输出结果是
6
喵查答案:4
1
10

4 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long

5 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}

6 以下正确的函数声明语句是_______。
int fun(int a,b);
喵查答案:double fun();
float fun(inta,intb);
int fun(char a[][]);

7 以下叙述中正确的是
static类型全局变量,可以被其他文件中语句访问。
任何存储类的变量在未赋初值时,其值都是不确定的。
同一函数内的static类型局部变量比auto类型的局部变量的作用域大。
喵查答案:同一函数内的static类型局部变量比auto类型的局部变量的生存期长。

8 下面关于全局变量的描述中,错误的是_____
所有在函数体外定义的变量都是全局变量
全局变量直到程序结束时才被释放
全局变量可以和局部变量同名称
喵查答案:全局变量第一次被引用时,系统为其分配内存

9 设函数fun的定义形式为int  fun(int a[],int n){  int s=0,i=0;  for(i=0;i<n;i++)s+=a[i];  return s;}void main(){int a[10]={1,2,3,4,5};printf("%d", fun(&a[1],2));}则程序的运行结果为
喵查答案:5
9
6
3

10 有以下程序void f(int v , int  w){  int t;   t=v;v=w;w=t;}main( ){     int x=1,y=2,z=3;   if(x>y)       f(x,y);   else if(y>z) f(y,z);       else      f(x,z);   printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1

11 、有以下程序int fun(int x , int  y){  if(x<y)   return x;   return y;}void main( ){  int a= 9,b=8,c=7;   printf("%d\n", fun(a,b));}程序的执行结果是
9
喵查答案:8
函数调用出错
7

12 若程序中定义了以下函数double  myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的函数声明是
double myadd(double  x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;

13 设函数fun的定义形式为:fun(char ch,float x){…}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)

14 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束

15 以下不正确的说法为
形式参数是局部变量
在不同函数中可以使用相同名字的变量
在函数内定义的变量只在本函数范围内有效
喵查答案:在函数内的复合语句中定义的变量在本函数范围内有效

16 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
寄存器
喵查答案:自动
外部
静态

17 下面的描述错误的是_____。
函数可以被其他函数调用
喵查答案:函数内可以嵌套定义函数
函数可以没有返回值
函数可以有多个形式参数

18 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。int sum(int n){   int s=0,i;   for(i=0;i<=n;i++)   ____________}void main(){   printf("The sum=%d\n",sum (10));}从备选答案中选择一答案,补全程序。
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;

19 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i++]); for(;i<10;i++)        a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是 
English—math
喵查答案:English
math
EnglishMath

20 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i])i++; for(;i<10;i++)        a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是 
喵查答案:English—math
English
math
EnglishMath

21 下面关于局部变量的描述中,错误的是_____。
函数的局部变量的有效范围只能在本函数
局部变量的名称不能和函数同名称
喵查答案:不同的函数中不能定义相同名称的局部变量
函数的形式参数也是局部变量

22 如果一个函数被定义为static类型,那么_____。
任何文件的函数都可以调用该函数
该函数只能被main函数调用
喵查答案:该函数能被当前源文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前源文件的函数调用,可以被其他文件的函数调用

23 有以下程序 int fun(int a){ return a%2; }main(){ int a[8]={1,3,2,4},i,d=0;  for (i=0;fun(a[i]);i++) d+=a[i];  printf(“%d\n”,d);}程序运行后的输出结果是
6
喵查答案:4
1
10

24 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long

25 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}

26 以下正确的函数声明语句是_______。
int fun(int a,b);
喵查答案:double fun();
float fun(inta,intb);
int fun(char a[][]);

27 以下叙述中正确的是
static类型全局变量,可以被其他文件中语句访问。
任何存储类的变量在未赋初值时,其值都是不确定的。
同一函数内的static类型局部变量比auto类型的局部变量的作用域大。
喵查答案:同一函数内的static类型局部变量比auto类型的局部变量的生存期长。

28 下面关于全局变量的描述中,错误的是_____
所有在函数体外定义的变量都是全局变量
全局变量直到程序结束时才被释放
全局变量可以和局部变量同名称
喵查答案:全局变量第一次被引用时,系统为其分配内存

29 设函数fun的定义形式为int  fun(int a[],int n){  int s=0,i=0;  for(i=0;i<n;i++)s+=a[i];  return s;}void main(){int a[10]={1,2,3,4,5};printf("%d", fun(&a[1],2));}则程序的运行结果为
喵查答案:5
9
6
3

30 有以下程序void f(int v , int  w){  int t;   t=v;v=w;w=t;}main( ){     int x=1,y=2,z=3;   if(x>y)       f(x,y);   else if(y>z) f(y,z);       else      f(x,z);   printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1

31 、有以下程序int fun(int x , int  y){  if(x<y)   return x;   return y;}void main( ){  int a= 9,b=8,c=7;   printf("%d\n", fun(a,b));}程序的执行结果是
9
喵查答案:8
函数调用出错
7

32 若程序中定义了以下函数double  myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的函数声明是
double myadd(double  x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;

33 设函数fun的定义形式为:fun(char ch,float x){…}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)

34 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束

35 以下不正确的说法为
形式参数是局部变量
在不同函数中可以使用相同名字的变量
在函数内定义的变量只在本函数范围内有效
喵查答案:在函数内的复合语句中定义的变量在本函数范围内有效

36 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
寄存器
喵查答案:自动
外部
静态

37 下面的描述错误的是_____。
函数可以被其他函数调用
喵查答案:函数内可以嵌套定义函数
函数可以没有返回值
函数可以有多个形式参数

38 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。int sum(int n){   int s=0,i;   for(i=0;i<=n;i++)   ____________}void main(){   printf("The sum=%d\n",sum (10));}从备选答案中选择一答案,补全程序。
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;

39 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i++]); for(;i<10;i++)        a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是 
English—math
喵查答案:English
math
EnglishMath

40 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i])i++; for(;i<10;i++)        a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是 
喵查答案:English—math
English
math
EnglishMath

41 有以下程序 int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]=b[j++]);}main(){ char s[][100]={“English”,”math”,”physical”,”Chinese”}; fun(s[1],s[2]); printf(“%s”,s[1]);}程序运行后的输出结果是 
English
math
喵查答案:physical
Chinese

42 有以下程序 int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]); while(a[i++]=b[j++]);}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是 
bookEnglish
无输出
喵查答案:book
English

43 有以下程序 int fun(char a[],char b[]){  int i=0;    while(a[i]=b[i++])i++; return i;}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是 
English
喵查答案:Eogki
book
nlih

44 有以下程序 int fun(char a[],char b[]){  int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”English”,t[20]=”Hi”; fun(s,t); printf(“%c”,s[3]);}程序运行后的输出结果是 
h
0
无输出
喵查答案:l

45 有以下程序 int fun(char a[],char b[]){  int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”Hello”,t[20]=”Hi”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是 
Hello
喵查答案:Hi
HelloHi
Hillo

46 以下程序段结果是f1(int x){static int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++)printf("%4d",f1(a));}
7 9 11
6 6 6
7 8 9
喵查答案:6 8 10

第10周 内存地址及其指针

1 设有如下一段程序:int *p,a,b;a=10;p=&a;p=&b;a=*p+10;执行上面的程序后,a的值为
20
10
110
喵查答案:不确定

2

设有如下一段程序:

int *p,a,b;

a=10;

p=&b;

p=&a;

a=*p+10;

执行上面的程序后,a的值为
喵查答案:20
10
110
不确定

3 若在定义语句:int a,b,*p=&b;之后,接着执行以下选项中的语句,则能正确执行的语句是
scanf(“%d”,b); 
scanf(“%d%d”,a,b);
喵查答案:scanf(“%d”,p);
scanf(“%d”,&p);

4

设有如下一段程序:

int *var,ab;

ab=100

var=&ab;

ab=*var+10;

执行上面的程序后,ab的值为
120
喵查答案:110
100
90

5 若有以下定义和语句:int b[10]={1,2,3,4,5,6,7,8,9,10},*p=b;则不能表示b数组元素的表达式是
*p 
喵查答案:b[10]   
*b
b[p-b]

6 下面程序输出数组中的最大值,由s指针指向该元素.void main(){  int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; for(p=a, s=a; p-a<10; p++) if(_______)s=p; printf(“Max=%d”,*s):}则在if语句中的判断表达式应该是
p>s
喵查答案:*p>*s 
a[p]>a[s]
p-a>p-s

7

设有定义语句

int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是
for(i=0;i<6;i++) printf("%2d",*(p++));
for(i=0;i<6;i++) printf("%2d",*(x+i));
喵查答案:for(i=0;i<6;i++) printf("%2d",*x++);
for(i=0;i<6;i++) printf("%2d",*p++); 

8 设有定义语句int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是
for(i=0;i<6;i++) printf("%2d",*(p++));
for(i=0;i<6;i++) printf("%2d",*(p+i));
for(i=0;i<6;i++) printf("%2d",*p++);
喵查答案:for(i=0;i<6;i++) printf("%2d",(*p)++); 

9 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=a[2];则下列能够正确表示数组元素a[1][2]的表达式是
喵查答案:*(p-1)
*(*(p-1))
*(p+1)
*(*(p+1)+2)

10

设有以下定义:

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int *p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是
喵查答案:*(p+5) 
*(*(p+5))
(*p+1)+2
*(*(p+1)+2)

11 执行以下程序后,y的值是void main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++)  y + = *(p + x);printf("%d\n",y);     }
17
喵查答案:18
19
20

12 下列程序的输出结果是void main( ){ int a[5]={2,4,6,8,10},*p;p=a;       printf(“%d”,*(++a));     }
4
2
6
喵查答案:程序出错

13 下列程序的输出结果是void main( ){ int a[5]={2,4,6,8,10},*p;p=a;       printf(“%d”,*(p++));     }
4 
喵查答案:2 
4
6

14 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
喵查答案:pb=&x
pb=x
*pb=&x
 *pb=*x

15 如下指针变量声明语句正确的是?
int *pa=&a,*pb=&b,a=10,b=20;
喵查答案:int a=10,b=20,*pa=&a,*pb=&b;
int a=10,b=20;int *pa,pb=&b;
int a=10,b=20;int *pa,*pb=b; 

16 设有如下一段程序:int *pa,*pb,a=10,b=20;pa=&a;*pa=a;a=b;b=*pa;执行上面的程序后,a的值为
喵查答案:20
30
10
程序出错

17

设有如下一段程序:

int *pa,*pb,a=10,b=20;

pb=&b;

*pa=a;

a=b;

b=*pa;

执行上面的程序后,a的值为
20
30
10
喵查答案:程序出错

18

设有如下一段程序:

int *pa,*pb,a=10,b=20;

pa=&a,pb=&b;

*pa=*pb;

a=*pa+10;

执行上面的程序后,a的值为
20
喵查答案:30
40
不确定

19 设有如下一段程序:int *pa,*pb,a=10,b=20;pa=&a,pb=&b;*pb=*pa;a=*pa+10;执行上面的程序后,a的值为
喵查答案:20
10
110
不确定

第11周 指针的应用

1 以下程序段 char *alp[]={“ABC”,”DEF”,”GHI”}; int j; puts(alp[1]);的输出结果是()。
ABC
喵查答案:DEF
GHI
ABCDEF

2 下列程序的输出结果是main( ){ char *p2,str[50]=”NEU”;char p1[10]=”abcd”;p2=”ABCD”;strcpy(str+2,strcat(p1+2,p2+1));printf(“%s”,str);}
NEabcd
喵查答案:NEcdBCD
NEUbcd
NEUabcd

3 设有如下定义:  char *aa[2]={“abcd”,”ABCD”};  则以下就法中正确的是
 aa数组成元素的值分别是”abcd”和ABCD”
 aa是指针变量,它指向含有两个数组元素的字符型一维数组
喵查答案:aa数组的两个元素分别存放字符串常量的首地址
aa数组的两个元素中各自存放了字符’a’和’A’的地址

4 设有如下函数定义:int f(char *s){  char *p=s;while(*p!=’\0′) p++;return(p-s);     }如果在主程序中用下面的语句调用上述函数,则输出结果为printf(“%d\n”,f(“\ngoodbey!”));
8 
喵查答案:9  
10
11

5 有以下程序#includemain(){    int a[]= {1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;    *q=*(p+5);    printf(“%d %d\n”,*p,*q);}程序运行后的输出结果是
喵查答案:运行后报错
6 6
6 11
5 10 

6 请选出以下程序的输出结果#includesub(int x,int y,int *z){  *z=y-x; }main(){  int a, b, c;sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);printf(“%d,%d,%d\n”, a,b,c);}
5,2,3  
喵查答案: -5,-12,-7
-5,-12,-17
5,-2,-7

7 设有如下程序:#includevoid main(){ int **k, *j, i=100;j=&i;   k=&j;printf(“%d\n”, **k);}上面程序的输出结果是
运行错误 
喵查答案:100
i的地址
j的地址

8 设有如下的程序段:char str[ ]=”Hello”;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为
‘o’ 
喵查答案:‘\0’     
不确定的值 
‘o’的地址

9 有以下程序void fun(char *c){    while(*c)    {    if(*c>=’a’&&*c<='z')        *c=*c-('a'-'A');c++;    }}main(){char s[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入Hi Neu,则程序的输出结果是
hi neu   
Hi Neu
喵查答案:HI NEU 
hI nEU

10 有以下程序void fun(int *s){   while(*s) {   if(*s%2) printf(“%d”,*s); s++; }}main(){  int a[8]={7,6,5,4,3}; fun(a); printf(“\n”);}程序运行后的输出结果是 
76
65
64
喵查答案:753

11 设有定义:double x[100],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
scanf(“%lf”,&x[5]);
scanf(“%lf”,*(x+6));
喵查答案:scanf(“%lf”,p+6);   
scanf(“%lf”,p[6]);

12 下面程序 char * fun2(char *t,char *s){    while(*t++);    while(*t++=*s++); return *t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t= fun2(a,b); printf(“%s”,a);}执行结果为
HelloNEU 
喵查答案:Hello
NEU
输出为空

13 下面程序 char * fun1(char *t,char *s){ while(*t++=*s++); return *t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”;    fun1(a,b); printf(“%s”,b);}执行结果为
HelloNEU
Hello
喵查答案:NEU
输出为空

14 下面程序 char * fun2(char *t,char *s){ while(*t=*s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[10]=”NEU”; fun2(a,b); printf(“%s”,a);}
HelloNEU 
Hello
喵查答案:NEU
输出为空

15 下面程序 char * fun1(char *t,char *s){ while(*t=*s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t=NULL; t=fun1(a,b); printf(“%s”,t);}执行结果为
HelloNEU 
Hello
NEU
喵查答案:输出为空

16 以下程序的输出结果是main(){   int  a[] = {2, 4, 6, 8, 10}, y = 1, x, *p;    p = &a[1];    for(x = 0; x < 3; x++) y += *(p + x);    printf(“%d\n”, y);}
20
18
17
喵查答案:19

17 以下程序的输出结果是 void  fun(float  *a,  float  *b){   float  w;    *a = *a + *a;    w = *a;    *a = *b;    *b = w;}main(){   float  x = 2.0,y = 3.0;    float  *px = &x, *py = &y;    fun(px, py);    printf(“%2.0f,%2.0f\n”, x, y);}
2, 3 
喵查答案:3, 4
3, 2
4, 3

18 若已定义:int   a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*prt )[3] = a, *p = a[0];则能够正确表示数组元素a[1][2]的表达式是
 *((*prt + 1)[2]) 
喵查答案: *(*(a + 1) + 2)
*(*(p + 5)) 
(*prt + 1) + 2 

第12周 复杂对象描述与结构体

1 如下程序段     enum direction{left=10,right,up,down};    typedef  enum direction Direction;    Direction d=up;    printf(“%d”,d++);输出结果为
11
喵查答案:12
1
0

2 如下程序段     enum direction{left=10,right,up,down};    enum direction a=left;    int d = left+right;    printf(“%d”,d);输出结果为
1
20
喵查答案:21
0

3 如下程序段  enum direction{left=10,right,up,down};    enum direction a=left;    printf(“%d”,a);输出结果为
left
喵查答案:10
1
0

4 如下程序段     enum direction{left,right,up,down};    enum direction a=left;    printf(“%d”,a);输出结果为
left
1
喵查答案:0
存在语法错误

5 下面程序 struct point{      float x,y,z;};int main(){    struct point points[5]={{1,0,0}};    printf(“%f”,points->x);}执行结果为
喵查答案:1.000000 
0.000000 
值不确定
无结果

6 下面程序 struct point{      float x,y,z;};int main(){    struct point points[5]={{1,0,0}};    printf(“%f”,points[1].x);}执行结果为
1.000000 
喵查答案:0.000000  
值不确定
无结果

7 下面程序 struct student{ int id; char name[32]; union {   char c;   int  g;   float f; } grade;}s1={100,”zhao”,{‘A’}};int main(){    struct student s1={20200001,”Joe”,’A’},s2={20200001,”Li”,65};    struct student p;    p=s1;    printf(“%s”,p.name);}执行结果为
喵查答案:Joe 
Li
20200001
无结果

8 下面程序 struct point{      float x,y,z;};void swap(struct point* p1,struct point* p2) {    struct point *m;    m=p1,p1=p2,p2=m; }int main(){    struct point p1={1,2,3},p2={0,0,0};    swap(&p1,&p2);    printf(“%f”,p2.x);}执行结果为
1.000000 
喵查答案:0.000000  
0.500000 
无结果

9 下面程序 struct point{      float x,y,z;};void swap(struct point p1,struct point p2) {    struct point m;    m=p1,p1=p2,p2=m;}int main(){    struct point p1={1,2,3},p2={0,0,0};    swap(p1,p2);    printf(“%f”,p2.x);}
1.000000
喵查答案:0.000000
0.500000   
无结果

10 下面程序 struct point{      float x,y,z;};struct point mid(struct point p1,struct point p2) {    struct point m;    m.x=(p1.x+p2.x)/2;    m.y=(p1.y+p2.y)/2;    m.z=(p1.z+p2.z)/2;    return m;}int main(){    struct point p1={1,2,3},p2,p3={0,0,0};;    p2=p1;    p3=mid(p1,p2);    printf(“%f”,p3.x);}执行结果为
喵查答案:1.000000
0.000000  
0.500000   
存在语法错误,无结果

11 对于如下语句struct point   {      float x,y,z;   }p1={1,2,3},p2,p3; p2=p1;如下说法正确的是
喵查答案:printf(“%f”,p2.x)的输出结果为1.000000
 p3=p1+p2是合法的表达式
p2=p1+1是合法的表达式
存在语法错误

12 对于如下结构体定义struct student{ int id; char name[32]; union {   char c;   int  g;   float f; } grade;}s1={100,”zhao”,{‘A’}}如下说法不正确的是
strlen(s1.name)的值为4
喵查答案:s1.grade.g的值为0
s1.grade.c的值为’A’
s1.id的值为100

13 对于如下结构体定义struct student{ int id; char name[32]; union {   char c;   int  g;   float f; } grade;}s1={100,”zhao”,{‘A’}}如下说法正确的是
 存在语法错误
喵查答案:表达式sizeof(s1.grade)的值为4
表达式sizeof(s1.grade)的值为9
s1.grade.g的值未知

14 对于如下结构体定义struct student{ int id; char name[32]; struct {   unsigned int y;   unsigned int m;   unsigned int d; } birthday;}s1={100,”zhao”,{1999,10,1}};如下说法正确的是
在语法错误
表达式sizeof(s1.birthday)的值为4
喵查答案:表达式sizeof(s1.birthday)的值为12
s1.birthday.m的值为1

15 对于如下结构体定义struct student{ int id; char name[32];}s1={100,”zhao”};如下说法正确的是
存在语法错误
表达式sizeof(s1.name)的值为4
喵查答案:表达式sizeof(s1)的值为36
表达式strlen(s1.name)的值为32

16 对于如下结构体定义struct student{ int id; char name[32];}s1,*p;若令p=&s1,则如下说法不正确的是
*p和s1的值相同,p指向s1
s1.id=100与p->id=100的功能相同,都是为s1的id成员赋值100
scanf(“%s”,p->name)实现给name成员赋值
喵查答案:scanf(“%s”,p.name)实现给name成员赋值

17 对于如下结构体定义struct student{ int id; char name[32];}s1;如下说法不正确的是
sizeof(s1)与sizeof(struct student)的值相等
s1.id=100实现给id成员变量赋值  
scanf(“%s”,s1.name)实现给name成员赋值
喵查答案:scanf(“%s”,&s1.name)实现给name成员赋值

18 对于如下结构体定义typedef struct student{ int id; char name[32];}Student;如下说法正确的是
typedef struct student为数据类型
student为数据类型    
喵查答案:Student为数据类型  
Student为结构体变量名称

19 对于如下结构体定义struct student{ int id; char name[32];}s1;如下说法正确的是
喵查答案:struct student 为数据类型
student为数据类型     
s1为数据类型   
struct  s1 为数据类型

20 关于结构体说法不正确的是
结构体为一种用户自定义数据类型
结构体要先定义,之后才能用于声明变量  
喵查答案:结构体必须在函数外部定义  
结构体可以嵌套定义,即在一个结构体中再定义新的结构体

第13周 链表及其处理

1 对于如下结构体定义struct node{ int id; struct node *next;}*list,*p;有如下函数定义void fun(struct node* p){ while(p->next!=NULL) { printf(“%d”,p->id); p=p->next; }}若将单向链表首地址传给fun,如下说法正确的是
喵查答案: fun函数可以实现输出链表中所有节点的id信息
fun函数为死循环,不能正常结束
fun函数需要补充链表首地址参数,才能实现输出链表中所有节点的id信息
fun函数存在语法错误

2 对于如下结构体定义struct node{ int id; struct node *next;};假设list存储链表首地址,p当前的链表的某节点,q为p前一个节点,也就是说q->next = p如下说法正确的是
喵查答案:表达式 q->next=p->next,free(p)实现删除节点p
表达式 q->next=p->next 实现删除节点p
表达式 p->next=q->next 实现删除节点p
表达式 p->next=q->next,free(p) 实现删除节点p

3 对于如下语句struct node{ int id; struct node *next;}*p;p=(struct node*)malloc(sizeof(struct node)*10);如下说法正确的是
p.id=10实现给首节点的id成员赋值
*p.id=10实现给首节点的id成员赋值
喵查答案:(*p).id=10实现给首节点的id成员赋值
p=>id=10实现给首节点的id成员赋值

4 对于如下结构体定义struct node{ int id; struct node *next;}a;若声明如下变量struct node *p;在32位系统中,不能实现创建链表节点的操作是
 p=(struct node*)malloc(sizeof(struct node));
喵查答案: p=(node*)malloc(sizeof(node));
p=(struct node*)malloc(sizeof(a));
p=(struct node*)malloc(8);

5 关于如下语句,说法不正确的是struct node{ int id; struct node *next;}* list,n;
 list为结构体指针变量,可以用于存储链表首地址
喵查答案:n 为结构体指针变量,可以存储节点地址   
sizeof(struct node)的值为8(在32位系统中)
list->next 可以获得下一节点地址

6 关于如下语句,说法不正确的是union node{ int id; union node *next;};
node为标识符
union node为数据类型名称   
喵查答案:union node可以用于定义链表   
sizeof(union node)的值为4(在32位系统中)

7 关于如下结构体struct node{ int id; struct node *next;};说法不正确的是
struct node为数据类型
struct node可以用于定义链表   
喵查答案: 结构体标识符node可以省略 
next 指向下一个结构体变量

8 关于如下结构体说法正确的是struct node{ int id; struct node next;};
node为数据类型
next 指向下一个结构体变量
喵查答案:此结构体定义存在错误  
struct 可以省略

9 结构体struct node{    int id;    struct node *next;};定义了链表list假设p为其中一个节点;如果在p后插入节点w,如下操作正确的是
p->next =w,w->next=p->next;
喵查答案:w->next=p->next,p->next=w;
t=w,w=p,p=t;
t=p->next;p->next=w;

10 如下共用体union var{    char c;    int d;    float f;    double e;    char str[128];};声明如下变量union var x;如下说法正确的是?
喵查答案:可以存储char、int、float、double类型数据或不超过127个ASCII字符的字符串
表达式(x.c=’A’,x.d=97)执行完后,putchar(x.c)的结果为’A’
sizeof(union var)的值145
var为数据类型名称

11 对于如下结构体struct point{float x,y;};如下语句执行后输出结果为struct point p1={1,2},p2={3,4},*t,*q;t=(struct point*)malloc(sizeof(struct point));memcpy(t,&p1,sizeof(struct point)); //memcpy从源内存地址&p1的起始位置开始拷贝若干个字节到目标内存地址t中printf(“%.0f”,t->x);
0
喵查答案:1
2
存在语法错误

12 对于如下结构体struct point{float x,y;};声明如下变量struct point p1={1,2},p2={3,4},s,*p;如下说法正确的是?
表达式s=p1+p2的结果为{4,6}
表达式(p=@p1,s=*p)结果为{1,2}
表达式s=p2+1结果为{4,5}
喵查答案:表达式(p=&p1,*p=p2)结果为{3,4}

13 设有如下定义: struct sk{int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是
(*p).data.a 
喵查答案:(*p).a     
p->data.a    
p.data.a

14 对于如下语句typedef struct mytype{    int n;    char ch[8];}* MYTYPE;如下说法正确的是
喵查答案:MYTYPE是 struct mytype*类型别名
MYTYPE结构体变量名 
MYTYPE结构体指针变量名 
MYTYPE是 struct mytype类型别名

15  设有以下语句typedef struct { int n;  char ch[8];}MYTYPE;则下面叙述中正确的是
MYTYPE 是结构体变量名 
喵查答案:MYTYPE是结构体类型名
typedef struct 是结构体类型 
struct 是结构体类型名

第14周 预编译处理

1 如下说法正确的是?
带参数的宏与函数的实现机制相同,例如都支持参数传递
带参数的宏与函数类似,可以实现递归调用
喵查答案:宏可以带参数
宏可以有返回值

2 如下说法不正确的是?
使用宏比调用函数的运行效率高
使用宏会增加代码的规模
喵查答案:宏支持参数,其参数传递机制与函数的参数传递机制一致,均遵循值拷贝机制
宏被预处理为C语言语句后,再参与编译。

3 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(ab)t=b;#endifprintf(“%d”,t);}输出结果为
0
喵查答案:3
4
存在语法错误

4 对于如下程序#define MAXint main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a<b)t=b;#endifprintf("%d",t);}输出结果为
0
3
喵查答案:4
存在语法错误

5 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a>b)t=a;#endifprintf(“%d”,t);}输出结果为
喵查答案:0
3
4
存在语法错误

6 对于如下程序#define ADD(a,b)  a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b)*ADD(a,b);printf(“%d”,t);return 0;}输出结果为
49
19
16
喵查答案:存在语法错误

7 对于如下程序#define ADD(a,b)  a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b);printf(“%d”,t);return 0;}
3
4
喵查答案:7
存在语法错误

8 对于如下程序#define SWAP(a,b)  {int t;t=a;a=b;b=t;}int main(){int a=3,b=4,t;t=SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
3
4
0
喵查答案:存在语法错误

9 对于如下程序#define SWAP(a,b)  {int t;t=a;a=b;b=t;}int main(){int a=3,b=4;SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误

10 对于如下程序#define MAX(a,b)   a>b?a:bint main(){int a=3,b=4,t=0;t=MAX(a,b);printf(“%d”,t);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误

11 对于如下程序#define IF   if(a<b)t=a;int main(){int a=3,b=4,t=0;IF {  a=b;  b=t;}printf("%d",a);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误

12 对于如下程序#define SUM   for(i=0;i<=10;i++)s=s+i;int main(){int i=0,s=0;SUMprintf("%d",s);return 0;}输出结果为
0
1
喵查答案:55
存在语法错误

13 对于如下程序#define CT  3>4#define CE  CT?3:4int main(){printf(“%d”,CE);return 0;}输出结果为
0
1
3
喵查答案:4

14 对于如下程序#define CT  3>4int main(){printf(“%d”,CT);return 0;}输出结果为 
喵查答案:0
1
3
4

15 对于如下程序#define CT  (2-1)int main(){printf(“%d”,CT*CT);return 0;}输出结果为
喵查答案:1
-1
-3
存在语法错误

16 对于如下程序#define CT  2-1int main(){printf(“%d”,CT*CT);return 0;}输出结果为
1
喵查答案:-1
-3
存在语法错误

17 对于如下程序#define CT  “1+2″int main(){printf(“%s”,CT);return 0;}输出结果为
喵查答案:1+2
3
1
2

18 对于如下程序#define CT  1+2int main(){printf(“%d”,CT);return 0;}输出结果为
1+2
喵查答案:3
1
2

第15周 文件与数据永久存储

1 对于如下程序void main(){  FILE *fp;  char names[100]=”Helloworld”;  char text[100]=””;  fp=fopen(“g:\\test.dat”,”wb+”);  fwrite(names,sizeof(char),strlen(names),fp);  rewind(fp);  fwrite(“Hi123”,sizeof(char),5,fp);  fread(text,sizeof(char),5,fp);  puts(text);  fclose(fp);}输出结果为
Helloworld
喵查答案:world
Hello
输出结果不确定

2 对于如下程序void main(){  FILE *fp;  char names[100]=”Helloworld”;  char text[100]=””;  fp=fopen(“g:\\test.dat”,”wb+”);  fwrite(names,sizeof(char),strlen(names),fp);  rewind(fp);  fread(text,sizeof(char),5,fp);  puts(text);  fclose(fp);}输出结果为
Helloworld
world
喵查答案:Hello
输出结果不确定

3 对于如下程序void main(){  FILE *fp;  char names[100]=”Helloworld”;  char text[100]=””;  fp=fopen(“g:\\test.dat”,”wb”);  fwrite(names,sizeof(char),strlen(names),fp);  fclose(fp);  fp=fopen(“g:\\test.dat”,”rb”);  fseek(fp,5,SEEK_CUR);  fread(text,sizeof(char),5,fp);  puts(text);  fclose(fp);}
Helloworld
喵查答案:world
Hello
输出结果不确定

4 对于如下程序void main(){  FILE *fp;  int a[10]={0,1,2,3,4,5,6};  fp=fopen(“g:\\test.dat”,”wb”);  fwrite(&a,sizeof(int),5,fp);  fclose(fp);}如下说法不正确的是?
实现将数组a中的前5个元素的值到文件test.dat中
fwrite的第一个参数错误,应该为a,不是&a,但是程序可以运行
喵查答案:实现将数组a中的后5个元素的值写入到文件test.dat中
test.dat文件大小为20字节

5 对于如下程序void main(){  FILE *fp;  int a=10;  fp=fopen(“g:\\test.dat”,”wb”);  fwrite(&a,sizeof(int),1,fp);  fclose(fp);}关于test.dat文件大小如下说法正确的是
喵查答案:4个字节
5个字节
6个字节
8个字节

6 文本文件中的test.txt内容如下1,2,3,5执行如下程序后,输出结果为void main(){  FILE *fp;  int a,b,c;  char m;  fp=fopen(“g:\\test.txt”,”r”);  fscanf(fp,”%d%d%d%c”,&a,&b,&c,&m);  printf(“a=%d,b=%d,c=%d,m=%c”,a,b,c,m);  fclose(fp);}输出结果为
a=1,b=2,c=3,m=5
a=1,b=2,c=3,m=,
a=1,b=,,c=2,m=,
喵查答案:格式串错误。只有a成功读取值1,其他变量的值均没有读取成功

7 对于如下程序#include void main(){  FILE *fp;  fp=fopen(“test.txt”,”w”);  fprintf(fp,”%5.2f”,0.12345678);  fclose(fp);}文件中的test.txt内容是
喵查答案: 0.12
0.12345
0.12 
00.12

8 关于fclose函数的说法,如下描述正确的是
喵查答案:fclose与fopen对应,打开的文件,完成读写操作后,必须通过fclose关闭
fclose不是必须调用,系统会自动关闭通过fopen打开的文件
采用读模式打开的文件,完成读操作后,可以不调用 fclose
采用写模式打开的文件,完成写操作后,可以不调用 fclose

9 如下语句中不能实现向屏幕输出文本“hello”的是
fprintf(stdout,”%s”,”hello”);
喵查答案:printf(stdout,”%s”,”hello”);
printf(“%s”,”hello”);
puts(“hello”);

10 如下标准设备中,属于键盘的是
喵查答案:stdin
stdout
stderr
stdkeyborad

11 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.dat”,”wb”);如下描述正确的是
喵查答案:文件”d:\data.dat”的内容被清空
打开文件后,可以执行读操作
打开文件后,可以调用fprintf函数实现写操作
此语句函数fopen调用错误

12 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.dat”,”a”);如下描述正确的是
文件”d:\data.dat”的内容被清空
打开文件”d:\data.dat”后,从文件头开始执行写操作
文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写
喵查答案:此语句函数fopen调用错误

13 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”a”);如下描述正确的是
文件”d:\data.txt”的内容被清空
文件”d:\data.txt”的内容不动,之后的读操作,将从文件末尾开始读
喵查答案:文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写
此语句函数fopen调用错误

14 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”r”);如下描述正确的是
文件”d:\data.txt”的内容被清空
喵查答案:文件打开成功,后面可以执行读操作
fp的值为NULL
此语句函数fopen调用错误

15 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”w”);如下描述正确的是
喵查答案:文件”d:\data.txt”的内容被清空
文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写,实现追加操作
fp的值为NULL
此语句函数fopen调用错误

16 如下打开文件”data.dat”操作中,实现以读模式二进制文件的语句是
fp=fopen(“data.dat”,”r”);
fp=fopen(“data.dat”,”wb”);
喵查答案:fp=fopen(“data.dat”,”rb”);
fp=fopen(“data.dat”,”a”);

17 如下打开文件”data.txt”操作中,实现以读模式打开文本文件的语句是
喵查答案:fp=fopen(“data.txt”,”r”);
fp=fopen(“data.txt”,’r’);
fp=fopen(“data.txt”,”rb”);
fp=fopen(“data.txt”,”a”);

期末考试

1 如下函数计划通过函数返回值统计函数被调用次数,则e1对应声明语句为int fun(int x){    e1           ++n;    return n;}
static int n=1;
int n=0;
int n=1;
喵查答案:static int n=0;

2 如下调用strcpy实现将s指向的字符串拷贝到t中,则e1对应声明语句为int main(){    char *s=”Hello”;    e1         strcpy(t,s);    puts(t);    return 0;}
 char t[];
char t[0];
喵查答案:char t[1024]; 
 char *t;

3 如下函数实现字符串拷贝(从s指向数组拷贝到t指向数组)int mstrcpy(char *t,char *s){    char *p=t;    while(    e1   );    return p-t-1;}则e1对应的表达式是?
(*p)++=(*s)++
p++=s++
喵查答案:*p++=*s++
++(*p)=++(*s)

4 如下函数实现字符串长度计算int mstrlen(char *s){    char *p=s;    while(*p++);    return   e1  ;}则e1对应的表达式是?
p-s
s-p
喵查答案:p-s-1
p-s+1

5 如下程序实现素数(大于等于2,且除了1和自身之外没有因子自然数)的判定int main(){    int n=0;    scanf(“%d”,&n);    int i=0;    for(i=2; i<n; i++)    {         if(n%i==0){            break;         }    }    if(   e1  )    {        printf(“%5d 是素数”,n);    }    return 0;}则e1对应的表达式是?
n>i
i<n
喵查答案:i>=n
i>n

6 如下程序实现完数(除自身之外因子之后等于自身的数)的判定int main(){    int n=0;    scanf(“%d”,&n);    int i=0,s=0;    for(i=1; i<n; i++)    {        if(   e1  )        {            s+=i;        }    }    if(s==n)    {        printf(“%5d is the number”,n);    }    return 0;}则e1对应的表达式是?
n/i
n%i
喵查答案:n%i==0
i%n==0

7 有以下程序int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;printf(“%d\n”, *p + *q);return 0;}程序运行后的输出结果是
喵查答案:10
16
8
6

8 若有语句:char *name[5];以下叙述中正确的是
喵查答案:name是一个数组,每个数组元素是一个char*类型的指针变量
name是一个指针变量,该变量可以指向一个长度为5的字符型数组
name是一个指针数组,语句中的*号称为间址运算符
name是一个指向字符型函数的指针

9 有以下程序片段int a[ ]={1,2,3,4},y,*p=&a[2];p++;y=*p;printf(“y=%d\n”,y);程序的运行结果是
喵查答案:y=4
y=1
y=2
y=3A

10 设有如下程序段char s[20]=”Bejing”,*p=s;下叙述正确的是
喵查答案:可以用*p表示s[0]
s数组中元素的个数和p所指字符串长度相等
s和p都是指针变量
数组s中的内容和指针变量p中的内容相等

11 假设fp为FILE* 指针变量,如下代码执行后,    char *s1=”China”,*s2=”Beijing”;    FILE *fp=NULL;    fp=fopen(“abc.dat”,”wb”);    fwrite(s2,7,1,fp);    rewind(fp);    fwrite(s1,5,1,fp);    fclose(fp);文件abc.dat的内容是
喵查答案:Chinang
China
ChinaBeijing
BeijingChina

12 下面结构体的定义如下:struct student{    char name[32];    struct date{        int day;        int month;        int year;    }birthday;};错误的初始化语句是:
喵查答案:struct student s1={‘Li’,1,1,2000};
struct student s1={“Li”,{1,1,2000}};
struct student s1={“Li”,1,1,2000};
struct student s1={“Li”,1,1};

13 下面结构体的定义语句中,错误的是
喵查答案:struct point {int x;int y;int z;} struct point a;
struct point {int x;int y;int z;}; struct point a;
struct point {int x,y,z;} a;
struct {int x;int y;int z;} a;

14 如下语句中实现数组指针声明的是?
喵查答案:char (*s)[10];
char *s[0];
char *s[10];
(char *)s[10];

15 打开文件,将读写位置指向文件尾部的操作是
fseek(fp,0L,SEEK_SET);
喵查答案:fseek(fp,0L,SEEK_END);
fseek(fp,0L,SEEK_CUR);
fseek(fp,0L,SEEK_BEGIN);

16 对于如下程序void main(){  FILE *fp;  int a[]={10,11,12};  fp=fopen(“d:\\test.dat”,”wb”);  fwrite(&a,sizeof(int),2,fp);  fclose(fp);}关于test.dat文件大小如下说法正确的是
2个字节
4个字节
喵查答案:8个字节
12个字节

17 如下函数定义int fun(int *p,int n){    int *t=p+n-1;    int x;    while(p<t){        x=*p,*p=*t,*t=x,p++,t–;    }}则如下语句的输出结果为    int A[10]={1,2,3,4,5,6,7,8,9,10};    fun(A,10);    printf("%d",A[6]);
喵查答案:4
5
6
7

18 如下语句的执行结果为    int A[3][3]={{1,11,111},{2,22,222},{3,33,333}};    int (*p)[3]=A;     printf(“%d”,*(*(p+1)+1));
11
喵查答案:22 
33
不确定的值 

19 如下语句的执行结果为    int A[3][3]={{1,11,111},{2,22,222},{3,33,333}};    int *p[3];    *p=A[0];    printf(“%d”,*(*(p+1)+1));
11
22
2
喵查答案:不确定的值

20 有如下枚举类型定义enum direction{right,left=100,forward=200,backward=300};则如下语句    int  a=100;    switch(a){    case right:        a++;    case left:        a+=left;        break;    }    printf(“%d”,a);的输出结果为
100
喵查答案:200
300
101

21 如下函数计划通过函数返回值统计函数被调用次数,则e1对应声明语句为int fun(int x){    e1           ++n;    return n;}
static int n=1;
int n=0;
int n=1;
喵查答案:static int n=0;

22 如下调用strcpy实现将s指向的字符串拷贝到t中,则e1对应声明语句为int main(){    char *s=”Hello”;    e1         strcpy(t,s);    puts(t);    return 0;}
 char t[];
char t[0];
喵查答案:char t[1024]; 
 char *t;

23 如下函数实现字符串拷贝(从s指向数组拷贝到t指向数组)int mstrcpy(char *t,char *s){    char *p=t;    while(    e1   );    return p-t-1;}则e1对应的表达式是?
(*p)++=(*s)++
p++=s++
喵查答案:*p++=*s++
++(*p)=++(*s)

24 如下函数实现字符串长度计算int mstrlen(char *s){    char *p=s;    while(*p++);    return   e1  ;}则e1对应的表达式是?
p-s
s-p
喵查答案:p-s-1
p-s+1

25 如下程序实现素数(大于等于2,且除了1和自身之外没有因子自然数)的判定int main(){    int n=0;    scanf(“%d”,&n);    int i=0;    for(i=2; i<n; i++)    {         if(n%i==0){            break;         }    }    if(   e1  )    {        printf(“%5d 是素数”,n);    }    return 0;}则e1对应的表达式是?
n>i
i<n
喵查答案:i>=n
i>n

26 如下程序实现完数(除自身之外因子之后等于自身的数)的判定int main(){    int n=0;    scanf(“%d”,&n);    int i=0,s=0;    for(i=1; i<n; i++)    {        if(   e1  )        {            s+=i;        }    }    if(s==n)    {        printf(“%5d is the number”,n);    }    return 0;}则e1对应的表达式是?
n/i
n%i
喵查答案:n%i==0
i%n==0

27 有以下程序int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;printf(“%d\n”, *p + *q);return 0;}程序运行后的输出结果是
喵查答案:10
16
8
6

28 若有语句:char *name[5];以下叙述中正确的是
喵查答案:name是一个数组,每个数组元素是一个char*类型的指针变量
name是一个指针变量,该变量可以指向一个长度为5的字符型数组
name是一个指针数组,语句中的*号称为间址运算符
name是一个指向字符型函数的指针

29 有以下程序片段int a[ ]={1,2,3,4},y,*p=&a[2];p++;y=*p;printf(“y=%d\n”,y);程序的运行结果是
喵查答案:y=4
y=1
y=2
y=3A

30 设有如下程序段char s[20]=”Bejing”,*p=s;下叙述正确的是
喵查答案:可以用*p表示s[0]
s数组中元素的个数和p所指字符串长度相等
s和p都是指针变量
数组s中的内容和指针变量p中的内容相等

31 假设fp为FILE* 指针变量,如下代码执行后,    char *s1=”China”,*s2=”Beijing”;    FILE *fp=NULL;    fp=fopen(“abc.dat”,”wb”);    fwrite(s2,7,1,fp);    rewind(fp);    fwrite(s1,5,1,fp);    fclose(fp);文件abc.dat的内容是
喵查答案:Chinang
China
ChinaBeijing
BeijingChina

32 下面结构体的定义如下:struct student{    char name[32];    struct date{        int day;        int month;        int year;    }birthday;};错误的初始化语句是:
喵查答案:struct student s1={‘Li’,1,1,2000};
struct student s1={“Li”,{1,1,2000}};
struct student s1={“Li”,1,1,2000};
struct student s1={“Li”,1,1};

33 下面结构体的定义语句中,错误的是
喵查答案:struct point {int x;int y;int z;} struct point a;
struct point {int x;int y;int z;}; struct point a;
struct point {int x,y,z;} a;
struct {int x;int y;int z;} a;

34 如下语句中实现数组指针声明的是?
喵查答案:char (*s)[10];
char *s[0];
char *s[10];
(char *)s[10];

35 打开文件,将读写位置指向文件尾部的操作是
fseek(fp,0L,SEEK_SET);
喵查答案:fseek(fp,0L,SEEK_END);
fseek(fp,0L,SEEK_CUR);
fseek(fp,0L,SEEK_BEGIN);

36 对于如下程序void main(){  FILE *fp;  int a[]={10,11,12};  fp=fopen(“d:\\test.dat”,”wb”);  fwrite(&a,sizeof(int),2,fp);  fclose(fp);}关于test.dat文件大小如下说法正确的是
2个字节
4个字节
喵查答案:8个字节
12个字节

37 如下函数定义int fun(int *p,int n){    int *t=p+n-1;    int x;    while(p<t){        x=*p,*p=*t,*t=x,p++,t–;    }}则如下语句的输出结果为    int A[10]={1,2,3,4,5,6,7,8,9,10};    fun(A,10);    printf("%d",A[6]);
喵查答案:4
5
6
7

38 如下语句的执行结果为    int A[3][3]={{1,11,111},{2,22,222},{3,33,333}};    int (*p)[3]=A;     printf(“%d”,*(*(p+1)+1));
11
喵查答案:22 
33
不确定的值 

39 如下语句的执行结果为    int A[3][3]={{1,11,111},{2,22,222},{3,33,333}};    int *p[3];    *p=A[0];    printf(“%d”,*(*(p+1)+1));
11
22
2
喵查答案:不确定的值

40 有如下枚举类型定义enum direction{right,left=100,forward=200,backward=300};则如下语句    int  a=100;    switch(a){    case right:        a++;    case left:        a+=left;        break;    }    printf(“%d”,a);的输出结果为
100
喵查答案:200
300
101

41 有如下枚举类型定义enum direction{right,left=100,forward,backward};则如下语句    enum direction a=right;    switch(a){    case right:        a++;    case left:        a+=left;        break;    }    printf(“%d”,a);的输出结果为
0
1
100
喵查答案:101

42 已定义共用体union var{    char s[32];    int n;    float f;    double e;};则如下说法正确的是
sizeof(union var)的值为48
喵查答案:sizeof(union var)的值为32
sizeof(union var)的值为4
sizeof(union var)的值为8

43 已定义函数int fun(int x){    static int i=0;    int s=0;    while(i<x){        s=s+i;        i++;    }    return s;}则如下语句的执行结果为    int n=1;    int s=0;    while(n<5)    {        s=s+fun(n++);    }    printf("%d",s);
10
15
 20
喵查答案:6

44 定义函数int fun(char*t,char *s){    static int i=0;    while(*(s+i)){       *t=*(s+i);       t++;       s++;       i++;    }    return i;}则如下语句的执行结果为    char s[]=”HelloNEU”;    char t[100]=”MyCProgramming”;    fun(t,s);    puts(t);
HelloNEU
HloE
喵查答案:HloErogramming
ello

45 已定义数组char s[]=”HelloNEU”,执行如下语句后,    char *p=s;    int i=0;    while(p[i]){        putchar(p[i]);        i++;        p++;    }输出结果为
HelloNEU
喵查答案:HloE
HNEU 
ello

46 使用如下语句FILE* fp=fopen(“abc.dat”,”w+”);打开文件abc.dat后,如下描述中不正确的是?
如果abc.dat已经存在,则其内容会被清空  
对abc.dat可以进行写操作,也可以进行读操作
喵查答案:对abc.dat可以进行追加操作,也可以进行写操作
如果abc.dat不存在,将自动创建此文件

47 相对于使用一维数组存储有序的集合,使用单向链表可获得那些好处,如下描述正确的是
更加节省存储空间   
 遍历集合的速度更快
喵查答案:删除元素速度更快
追加元素的速度更快

48 有如下结构体数组定义struct point{    float x,y,z;}s[3]={{1,2,3}};则如下语句的    struct point *p=s+1;    printf(“%d”,++p->x);输出结果为
喵查答案:1
2
3
4

49 有如下结构体数组定义struct student{    char name[16];    int math;    float programming;}s[3]={{“LiMing”,80,90.5},{“Joe”,80,90.5},{“John”,80,90.5}};则puts((s+1)->name+1))的输出
LiMing
Joe
喵查答案:oe
80

50 设有定义:struct{    char name[16];    int math;    float programming;}x1,x2; 若变量均已正确赋初值,则以下语句中错误的是
x1=x2;
喵查答案:x1.name = x2.name;
x1.math = x2.math;
x1.programming = x2.programming;

51 有如下宏定义#define A(x) 2*x+10#define T(x) A(x)*x则表达式T(2+1)的值为
喵查答案:26
36
48
27

52 下程序的功能是int fun(int x){    if(x==0||x==1)return x; else return x+fun(x-1);}
计算x的阶乘
喵查答案:计算1+2+…+x的和
计算x的幂
不确定

53 若函数fun定义如下int fun(char a[],char b[]){ int i=0,j=0; while(a[i]=b[i])i++;}如下程序代码执行结果为char s[10][100]={“English”,”math”,”physical”,”Chinese”};int i=0;for(i=0;i<3;i++){ if(s[i][0]>s[i+1][0]) { fun(s[5],s[i]); fun(s[i],s[i+1]); fun(s[i+1],s[5]); }}printf(“%s”,s[3]); 程序运行后的输出结果是 
English
math
喵查答案:physical
Chinese

54 有以下函数int fun(char *t,char *s){    char *p=t;    char *q=s,*m=t;    while(*t){        q=s;        p=t;        while(*q){            if(*q!=*p)                break;            p++,q++;        }        if(*q==0){            p=t;            break;        }        t++;    }    return p-m;}执行以下程序片段    char s[]=”English Boook”; printf(“%d”,fun(s,”ng”));程序运行后的输出结果是
0
喵查答案:1
2
3

55 有以下函数int fun(char *s){    char *p=s;    while(*s++);    return s-p;}执行以下程序片段    char s[]=”x\0123yz”; printf(“%d %d”,fun(s),sizeof(s));程序运行后的输出结果是
5 6
喵查答案:6 6
6 5
7 4

56 有如下函数int fun(char *s){    int i=0;    int t=0;    while(*s!=’\0′){        if(*s>=’0’&&*s<='9'){            t=t*10+*s-'0';        }        s++;   }    return t;}执行以下程序片段    char text[]="abc123t4x";    printf("%d",fun(text));程序运行后的输出结果是
0
123
喵查答案:1234
程序运行出错

57 有如下函数void fun(char s[],char *t){    int i=0;    while(s[i]!=’\0′){        if(s[i]>=’0’&&s[i]<='9'){            *t=s[i];            t++;        }        i++;   }   *t=0;}执行以下程序片段    char text[]="abc123",t[64]="";    fun(text,t);    puts(t);程序运行后的输出结果是
abc
喵查答案:123
abc123
程序运行出错

58 有以下函数void fun(int *p,int *q){    int *t;    t=p;    p=q;    q=t;}执行以下程序片段{    int A[5]={1,2,3,4,5};    int i;    for(i=0;i<4;i++){        fun(A[i],A[i+1]);    }    printf("%d",A[4]);    return 0;}程序运行后的输出结果是
1
3
4
喵查答案:5

59 执行以下程序片段 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);程序运行后的输出结果是
1,2,2,1
1,2,1,2
2,1,2,1
喵查答案:程序运行错误

60 有以下函数int fun(char a[],char b[]){ int i=0; while(a[i]==b[i])i++; return i;}执行以下程序片段 char s[100]=”MyEnglish”,t[20]=”Ling”;  printf(“%d”,fun(s+3,t+2));程序运行后的输出结果是
0
1
喵查答案:2
死循环

61 有如下函数int fun(int n){    int i=2;    while(i<n){        if(n%i==0)            return n;        i++;    }    return 0;}执行如下程序片段    int a[3][4]= {1,2,3,4,5,6,7,8,9};    int s=0,i=0;    for(i=0; i<3; i++)        s=s+fun(a[1][i]);    printf("%d",s);程序运行后的输出结果是
5
喵查答案:6
7
12

62 有以下函数void fun(int a[3][4],int n){    int i=0,j=0;    for(i=0; i<n; i++)    {        a[i][3]=0;        for(j=0; j<3; j++)        {            a[i][3]+=a[i][j];        }    }}执行如下程序片段    int a[3][4]= {1,2,3,4,5,6,7,8,9};    int i;    fun(a,3); for(i=0; i<3; i++) printf(“%3d”,a[i][3]);程序运行后的输出结果是
6 15 24
喵查答案:6 18 9
0 0 0 
11 15 19

63 有以下程序片段    int a[3][3]= {1,2,3,4,5,6,7,8,9};    int i=0,j=0;    for(i=0; i<3; i++)        for(j=0; j<3; j++)        {            if((i+j)%2==0)                a[i][j]=1;        }    for(i=0; i<3; i++)        printf("%d",a[i][i]);程序运行后的输出结果是
喵查答案:111
159
359
222

64 有以下函数int T(char t[],char s[]){ int i=0; while(s[i]!=0&&i/2!=0) t[i]=s[i++];        t[i]=0; return i;}执行如下代码片段后  char s[]=”ABCD”;  char t[100]=”Hi”;  T(t,s);  printf(“%s”,t);程序运行后的输出结果是
喵查答案:无输出,或者说输出空串
AB
Hi
HA

65 有以下函数int fun(char t[]){ int i=0,s=0;    while(t[i]){        s=s+t[i]-‘0’;        i++;    } return s;}执行如下代码片段后      char s[]=”12345″;      printf(“%d”,fun(s));程序运行后的输出结果是
6
10
喵查答案:15
20

66 有以下函数int fun(char t[],char s[]){ int i=0; while((t[i]=s[i])!=0)i++;  return i;}执行如下代码片段后      char s[]=”NEU C\0 Programming”;      char t[100];      fun(t,s);      printf(“%d”,strlen(t));程序运行后的输出结果是
3
4
喵查答案:5
6

67 有以下程序#define X 1+2int main(){    int a=2,b=0;    b=X*X/a;    printf(“%d\n”,b);    return 0;}程序运行后的输出结果是
6
喵查答案:4
12
8

68 有以下程序片段, char s[]=”123″; int i=0,d=0; while(s[i]){        d=d+s[i]-‘0’;        i++; } printf(“%d”,i);程序运行后的输出结果是
6
123
喵查答案:3
4

69 如下语句中不能实现向屏幕输出文本“NEU”的是
fprintf(stdout,”%s”,”NEU”);
喵查答案:sprintf(stdout,”%s”,”NEU”);
printf(“%s”,”NEU”);
puts(“NEU”);

70 如下标准设备文件中,代表键盘的是?
喵查答案:stdin
stdout
stderr
stdkeyborad

71 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”r”);如下描述正确的是
文件”d:\data.txt”的内容被清空
喵查答案:文件打开成功,后面可以执行读操作
fp的值为NULL
此语句函数fopen调用错误

72 对于如下程序#define MAX(x,y) x>y?x:yint main(){printf(“%d”,MAX(10,20));return 0;}输出结果为
10
喵查答案:20
0
存在语法错误

73 对于如下结构体定义struct node{ int id; struct node *next;}a;若声明如下变量struct node *p;在32位系统中,不可以实现创建链表节点的操作是
p=(struct node*)malloc(sizeof(struct node));
喵查答案:p=(node*)malloc(sizeof(node));
p=(struct node*)malloc(sizeof(a));
p=(struct node*)malloc(8);

74 关于如下结构体struct node{ int id; struct node next;};如下说法正确的是
node为数据类型
sizeof(struct node)的值为8
喵查答案:此结构体定义存在错误  
struct 可以省略

75 关于如下结构体说法正确的是struct node{ int id; struct node* next;};
node为数据类型
喵查答案:next 指向下一个结构体变量的地址
此结构体定义存在错误 
struct 可以省略

76 下面程序 struct point{     float array[3];};int main(){    struct point points[5]={1,2,3,4,5,6,7};    printf(“%.0f”,points[1].array[0]);}执行结果为
1
2
3
喵查答案:4

77 对于如下结构体定义struct point{      float x,y,z;} p1={1,2,3},p2={4,5,6},p3;如下语法正确的表达式
p3=p2+p1
p3=p2+1
scanf(“%v”,&p3);
喵查答案:p2=p1

78 下面程序 struct point{      float x,y,z;};struct point mid(struct point p1,struct point p2) {    struct point m;    m.x=(p1.x+p2.x)/2;    m.y=(p1.y+p2.y)/2;    m.z=(p1.z+p2.z)/2;    return m;}int main(){    struct point p1={1,2,3},p2,p3={0,0,0};;    p2=p1;    p3=mid(p1,p2);    printf(“%.2f”,p3.x);}执行结果为
喵查答案:1.00
0.00
0.50 
无结果

79 对于如下结构体定义struct grade{ char name[32]; union {   char c;   int  g; } v;}s1={“zhao”,{‘A’}},s2={“Li”,{80}};如下语法不正确的表达式
s2.v.c=s1.v.c
scanf(“%d”,&s1.v.g)
s2.v.c=s1.v.g
喵查答案:s1.name = s2.name

80 对于如下结构体定义struct student{ int id; char name[32]; struct {   unsigned int year;   unsigned int month;   unsigned int day; } birthday;}s1={100,”zhao”,{1999,10,1}};如下说法正确的是
存在语法错误
表达式sizeof(s1.birthday)的值为4
喵查答案:表达式sizeof(s1.birthday)的值为12
s1.birthday.month的值为1

81 对于如下结构体定义struct student{ int id; char name[32];}s1={20001,”LiMing”},s2;如下表达式不正确的是
s2=s1
2.id=s1.id
喵查答案:s2.name=s1.name
scanf(“%d”,&s2.name)

82 对于如下结构体定义struct Point{ int id;}point;如下说法不正确的是
struct Point为数据类型
喵查答案:Point 为数据类型
sizeof(point)的值为4
point 为结构体变量

83 若函数fun定义如下int fun(char a[],char b[]){ int i=0,j=0; while(a[i]=b[i])i++;}如下程序代码执行结果为    char *text=”ThisisaCprogrammingcourse”; char *p=fun(text,’C’); if(p!=NULL)        printf(“%d”,p-text);    else        printf(“%d”,-1);执行结果为
-1 
 C
喵查答案:7
6

84 若有以下的定义:int a[]={1,2,3,4,5,6,7,8,9,10}, *p=a+3;则p[2]的值是
4
5
喵查答案:6
7

85 下结构体已经定义如下struct T{    int id;    union X    {        int id;        char name[100];    }name;};则如下代码    struct T *p;    printf(“%d %d”,sizeof(struct T),sizeof(p));在64位操作系统下编译执行后,输出结果为
108 108
104 104
108 8 
喵查答案:104 8

86 如下函数fun定义如下int* fun(int **p){    static int a=100;    return  *p=&a;}则如下代码    int a=1,b=2;    int *p=&a;    a++;    p=fun(&p);执行后,*p的值为多少
1
2
喵查答案:100
101

87 已知如下宏定义#define FUN(x,y)  x+y*2则如下代码 int a=1,b=2; int c=FUN(a,b*2);执行后,c的值为
喵查答案:9
8
7
存在语法错误

88 如下函数fun定义如下int fun(int A[][2],int n){    int a=0,b=n*2-1;    int *p=A[0];    while(a<b){        *p=*p*2;        p++;        a++;    }   return a;}则如下代码    int A[][2]={1,2,3,4,5,6};    fun(A,3);执行后,A[2][1]的值为多少
2
4
喵查答案:6
8

89 如下函数fun定义如下int fun(int A[],int n){    int a=0,b=n-1;    int t;    while(a<b){        t=A[a];        A[a]=A[b];        A[b]=t;        a++,b–;    }   return a;}则如下代码    int A[]={1,2,3,4,5,6};    fun(A,5);执行后,A[2]的值为多少
2
喵查答案:3
4
5

90 如下程序中sum函数的定义为int sum(int n){    int s=0,i=0;    while(n)s=s+n–;    return s;}则如下代码    int s=5;    if(s)s=sum(s);执行后,s的值为多少
0
10
喵查答案:15
16

91 如下程序中sum函数的定义为sum(int n){    int s=0,i=0;    for(i=0;i<n;i++)        s=s+i;    return s;}则如下代码    int s=0;    if(s)s=sum(5);执行后,s的值为多少
sum函数定义错误
10
11
喵查答案:0

92  如下程序中,a已经声明,则如下程序的输出结果为    static int a;    while(a++<10);    printf("%d",a);
a未初始化,输出结果不确定
10
喵查答案:11
0

93 有以下程序片段,    int a,b,c=2;    if(a=1,b=2,a+=2){        int c=1;        b=c>2?5:c++;    }    printf(“%d,%d”,b,c);程序运行后的输出结果是
2,3
2,2
喵查答案:1,2
存在语法错误

94 有以下程序片段,    int c=0,k=5;    switch (k++)    {    default: c+=k; break;    case 2: c++;    case 3: ++c;    case 4: c+=2;break;    }程序运行后c的值是?
3
4
5
喵查答案:6

95 以下程序片段     int a=1,b=2,d=25;     {         int a=0;         a=d/10||9;     }     b=a||(a>b);     printf(“%d,%d\n”,a,b);程序运行后的输出结果是
2,1
1,0
喵查答案:1,1
存在语法错误

96 有以下程序片段,执行完后输出结果为int a=2,b=4;b=a<<4-2;printf("%d",b);
14
喵查答案:8
0
-2

97 若有声明语句:char a=20,b=128则表达式(a>b?a++:b++)的值为
128
129
-128
喵查答案:1

98 若a为int类型变量,初始值为0,则表达式a=(char)(255/2+1)的值是
127
128
0
喵查答案:-128

99 若a为int类型变量,初始值为0,则表达式(int)(a=13,(double)a/3-1,++a)%3的值是
0
1
喵查答案:2
存在语法错误

100 阅读以下程序 #include  int main() {  int a=2,b; float c=a+2.0F,d=b+3F; printf(“%f%f\n”,c,d);  return 0; }该程序存在的错误,如下说法正确的是:
声明语句 float d=b+3F存在错误,3F为非法常量
声明语句int a=2,b出错,变量b未赋初值
printf(“%f%f\n”,c,d) 应该改为printf(“%d%d\n”,c,d)
喵查答案:声明语句 float d=b+3F存在错误,变量b未赋初值

101 阅读以下程序 #include  int main() {  char a=’2′,b; float c=1.0F;  scanf(“%d%f%d”,&a,&b,&c); printf(“%d%f%d\n”,a,b,c);  return 0; }该程序存在的错误,如下说法正确的是:
声明语句float c=1.0F; 语句错误,1.0F为非法常量
声明语句出错,变量b未赋初值
喵查答案:scanf(“%d%f%d”,&a,&b,&c) 应该改为scanf(“%c%c%f”,&a,&b,&c),printf(“%d%f%d\n”,a,b,c)应改为printf(“%c%c%f\n”,a,b,c)
scanf(“%d%f%d”,&a,&b,&c) 应该改为scanf(“%d%d%f”,a,b,c),printf(“%d%f%d\n”,a,b,c)应改为printf(“%d%d%f\n”,a,b,c)

102 如下关于C语言源程序的观点中不正确的是?
C语言源程序为文本文件,不能直接运行
构成一个可执行程序的C语言源程序文件可以有多个
喵查答案:构成一个可执行程序的C语言源程序文件中主函数可以main或Main
构成一个可执行程序的C语言源程序文件中只能有一个main函数

103 以下选项中,合法的标识符的是
“Hello”
喵查答案:Double
a-b
456_an

104 以下选项中,能用作C语言用户自定义标识符的是
bool
喵查答案:Auto
register
static

105 有以下函数int f(int a){ static int i=2; return a%i++;}main(){ int s[]={1,2,0,1,3,6,7,8},i,d=0; for (i=0;f(s[i]);i++)        d+=s[i]; printf(“%d\n”,d);}程序运行后的输出结果是
1
2
喵查答案:3
无限循环

106  如下程序段  enum direction{left,right,up,down};    enum direction a=left;    printf(“%d”,a);输出结果为
left
1
喵查答案:0
存在语法错误

107 有以下函数int fun(int n){ register int i=0,s=0; for(;i<=n;i++) s=s+i;    return s;}执行如下代码片段后   int a=2;   while(a<=5)        a=fun(a);    printf("%d\n",a);程序运行后的输出结果是
3
4
喵查答案:6
无限循环

108 有以下函数int add(int p){    int d=1;    d+=p;    return d;}执行如下代码片段后    int a=1;    add(add(++a));    printf(“%d\n”,a);程序运行后的输出结果是
1
喵查答案:2
3
4

109 有以下函数int swap(int a,int b){    int  t; t=a,a=b,b=t;    return t;}执行如下代码片段后    int a=100,b=200; b=swap(a,b);    printf(“%d\n”,b);程序运行后的输出结果是
喵查答案:100
200
0
存在语法错误

110 执行下面的程序段后,输出结果为多少char a[]=”NEU”, b[10]=”NEU”;printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3 
喵查答案:4,10
3,10 
4,4

111 有以下程序片段, char s[]=”1230456″; int i=0; while(s[i]!=’0′){        i++; } s[i]=0; puts(s);程序运行后的输出结果是
1230456
喵查答案:123
1230
死循环

112 执行下面的程序段后,变量a中的值为int  a=3, s[5]={‘1′,’2’,3};s[0]=a;  a=s[2]*10;
0
喵查答案:30
20
存在语法错误

113 设a,s为int型变量,则下面循环语句执行后s的值?     a=12345;    while(a)    {        s=s+a % 10;        a/=10;    }    printf(“%d\n”,s);
10
喵查答案:15
20
死循环

114 下面循环语句执行后sum的值?    char c=’0′;    int sum=0;    do{        sum+=c-‘0’;        c++;    }while(c<'5');
喵查答案:10
15
20
死循环

115 设j为int型变量,则下面循环语句的执行结果是 j=8;    while(j–>2);    {        j-=2;    }    printf(“%d\n”,j);
-2 
喵查答案:-1
0
死循环

116 设x和y均为int型变量,则执行下的循环后,x值为    for(y=1,x=1; y=6)break;        if (x%2)        {            x+=5;            continue;        }        x-=3;    }
2
4
喵查答案:6
8

117 如下语句中,可以实现输出”Hi,NEU”是?
喵查答案:char a[]=”Hi,NEU”;printf(“%s”,a);
char a[5]=”Hi,NEU”;printf(“%s”,a);
char a[]=’Hi,NEU’;printf(“%s”,a);
char a=”Hi,NEU”;printf(“%s”,a);

118 有以下程序片段, int a,b; for(a=0,b=3;b–;a+=b); printf(“%d,%d”,b,a);程序运行后的输出结果是
喵查答案:-1,3
0,6
-1,6
-1,4

119 已知’0’的ASCII码值为48,有以下程序片段    char a=’1′,b=’3′,c=’0′;    if(a=b)        c=a++;    else        c=b;    printf(“%d”,c);程序的运行结果是
2
50
3
喵查答案:51

120 有以下程序片段,int a=0,b=1;while(b)   a+=b–;程序运行后变量a的值是
0
喵查答案:1
3
死循环,无法计算结果

/pay

喜欢 (0)
关于作者: