admin 管理员组

文章数量: 1086019


2024年2月19日发(作者:不同类型的指针占的字节)

山西省专升本C语言2019答案

一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分)

1、以下关于C语言标识符的描述中,正确的是 【 】。 [单选题] *

A)标识符可以由汉字组成

B)标识符只能以字母开头

C)关键字可以作为用户标识符

D)Area与area是不同的标识符(正确答案)

2、以下不正确的C语言标识符是 ( ) [单选题] *

A、 ABC

B、 abc

C、 a_bc

D、 ab.c(正确答案)

3、判断char类型的变量c1是否为数字字符的正确表达式为 【 】。 [单选题] *

A) (c1>=0)&&(c1<=9)

B) (c1>=’0’)&&(c1<=’9’)(正确答案)

C) ’0’<=c1<=’9’

D) (c1>=’0’)||(c1<=’9’)

4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 [单选题] *

A)’a’&&’b’

B)a<=b

C)((a>b)||(b

D)(!(a+b)==c&&a)(正确答案)

5、已知:int a[2][3]; 则对数组元素的非法引用是 【 】 [单选题] *

A. *(a[0]+2)

B. a[1][3](正确答案)

C . a[1][0]

D. *(*(a+1)+2)

6、在循环语句的循环体中执行break语句,其作用是 【 】。 [单选题] *

A)跳出该循环体,提前结束循环(正确答案)

B)继续执行break语句之后的循环体各语句

C)结束本次循环,进行下次循环

D)终止程序运行

7、执行语句for(i=10;i>0;i--);后,变量i的值为 【 】。 [单选题] *

A)10

B)9

C)0(正确答案)

D)1

8、若有int *p1, *p2,k; 不正确的语句是 【 】 [单选题] *

A. p1=&k

B. p2=p1

C. *p1=k+12

D. k=p1+p2(正确答案)

9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】 [单选题] *

A. 静态(static)

B. 外部(extern)

C. 自动(auto)(正确答案)

D. 寄存器(register)

10、如下程序的输出结果是 【 】

main( )

{ int x=2,a=0,b=0;

switch(x)

{ case 2: a++; b++;

case 1: ++a; b--; break;

case 0: b++;}

printf("a=%d, b=%dn", a, b);} [单选题] *

A. a=2, b=0(正确答案)

B. a=2, b=1

C. a=1, b=1

D. a=1, b=0

11、表示关系a

B. (a

】 [单选题] * 【

C. (a

D. (a

12、 有以下程序

#include

main()

{int x;

scanf(“%d”,&x);

if(x<=3); else

if(x!=10)printf(“%dn”,x); }

程序运行时,输入的值在哪个范围才会有输出结果。 【 】 [单选题] *

A.不等于10的整数

B.大于3且不等于10的整数(正确答案)

C.大于3或不等于10的整数

D.小于3的整数

13、下面有关for循环的正确描述是( ) [单选题] *

A、 for循环只能用于循环次数已经确定的情况

B、 for循环是先执行循环体语句,后判定表达式

C、 在for循环中,不能用break语句跳出循环体

D、 for循环体语句中,可以包含多条语句,但要用花括号括起来(正确答案)

14、若a, b, c, d均为整型变量,执行以下程序段后的t的值为 【 】

#define MAX(A,B) (A)<(B)?(A):(B)

................

a=5; b=3; c=3; d=4;

t=MAX(a+b,c+d) *10; [单选题] *

A. 70(正确答案)

B. 7

C. 8

D. 80

15、执行以下程序段后, m的值为 【 】

int a[6]={1,2,3,4,5,6}, m, *p;

p=&a[0];

m=(*p)*(*(p+2))*(*(p+4)); [单选题] *

A) 15(正确答案)

B) 14

C) 13

D) 12

二、判断题(本大题共 10 小题,每题1分,共 10 分,答√表示说法正确.答╳表示说法不正确)

16. 字符型数据不可以进行加减运算。 ( ) [判断题] *

错(正确答案)

17. 函数定义与函数的声明是一回事。 [判断题] *

错(正确答案)

18.在C语言中函数能嵌套调用,也能嵌套定义。 [判断题] *

错(正确答案)

19. 在C 语言中switch 语句必须使用break 语句。 [判断题] *

错(正确答案)

20. for循环中的三个表达式都可以省略。 [判断题] *

对(正确答案)

21. do-while循环是先进行循环体语句,后判断表达式。 [判断题] *

对(正确答案)

22. 只能在main()函数中定义静态变量。 [判断题] *

错(正确答案)

23. char *s1=“I love china”;定义了一个指针变量s1,它的初值为字符串“I love

china”的首地址。 [判断题] *

对(正确答案)

24. int *p[4];与int (*p)[4];的作用相同,都是定义了一个指向数组的指针。 [判断题]

*

错(正确答案)

25. 预处理命令行最后也是以分号(;)结尾的。 [判断题] *

错(正确答案)

三、填空题(每空2分,共20分。)

26、在C语言中 * 作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。 [填空题] *

_________________________________(答案:请设置答案)

27、表达式(a=3*5,a*4),a+5中a的值是__________,整个表达式的值是

_________。 [填空题] *

_________________________________

28、设有如下的类型说明:

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

若数组所占内存单元的起始地址为446且整型数据占4个字节,则p+5=_______,*(p+5)=______。 [填空题] *

_________________________________

29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字节数分别为_________和__________。

union stu1 struct stu2

{ int num; {int num;

char name[5]; char name[5];

char s; }x; char s; }y; [填空题] *

_________________________________

30、有以下程序

#include

main()

{char c1,c2;

scanf(“%c”,&c1);

while(c1<65||c1>96) scanf(“%c”,&c1);

c2=c1+32;

printf(“%c,%c”,c1,c2);

}

程序运行输入65回车后,能否输出结果。(请回答能或不能)______。*

_________________________________(答案:请设置答案)

四、阅读程序写出运行结果(本大题共 4 小题,每题 5分,共 20 分)

31、#include

void main()

{ int a=10,b=18;

fun1(a,b);

}

int fun1(int x,int y)

{ if(x>y)

printf("a>bn");

else if(x

else printf("a==bn");

}

运行结果:

[填空题] *

_________________________________

32、int fun(int a)

{ int b=0;

填空题] [

static int c=3;

b=b+1;

c=c+1;

return(a+b+c);}

main( )

{ int a=2, i;

for(i=0; i<3; i++)

printf(“%d ”, fun(a)); }

运行结果: [填空题] *

_________________________________

33、main( )

{ int a[2][3]={1,2,3,4,5,6}, b[3][2], i, j;

for(i=0;i<=1;i++)

{ for(j=0;j<=2;j++)

{b[j][i]=a[i][j];}

printf(“n”);}

for(i=0;i<=2;i++)

{for(j=0;j<=1;j++)

printf(“%5d”, b[i][j]);

printf(“n”);}

}

运行结果: [填空题] *

_________________________________

34、#include

void fun(int *p1, int *p2)

{ int t;

t=*p1; *p1=*p2; *p2=t; }

void main()

{ int x,y;

int *p1,*p2;

scanf("%d,%d",&x,&y);

p1=&x; p2=&y;

if(x>y) fun(p1,p2);

printf("x=%d,y=%d", x, y); }

若输入 5, 3 ,则运行结果是: [填空题] *

_________________________________

五、编写程序(本大题共2小题,每题10分,共 20 分。)

35、输入两个正整数m和n,求其最大公约数和最小公倍数。 [上传文件题] *

36、对10个数进行排序,按从小到大的顺序输出。 [上传文件题] *


本文标签: 语句 循环 答案 结果 变量