当前位置:文档之家› 专升本-计算机应用基础模拟C语言试题-01

专升本-计算机应用基础模拟C语言试题-01

专升本-计算机应用基础模拟C语言试题-01
专升本-计算机应用基础模拟C语言试题-01

一、单项选择题(共25小题,每题2分,共50分)

以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”

对应的格中,未填入答题表,错选或多选均不得分。

1.以下叙述不正确

...的是

A. 一个C源程序可由一个或多个函数组成

B. 一个C源程序必须包含一个main函数

C. C程序的基本组成单位是函数

D. 在C程序中,注释说明只能位于一条语句的后面

2.在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是

A.1O B.11 C.4 D. 13

3.在C程序中,有语句“int k=7,x=12;”,则下列表达式的值为3的是

A. x%=k-k%5

B. x%=(k-k%5)

C. x%=(k%=5)

D. (x%=k)-(k%=5)

4.在C语言中,非法

..的字符常量是

A. '\t'

B. '\17'

C. "\n"

D. '\xaa'

5.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A. (exp==0)

B. (exp!=0)

C. (exp==1)

D. (exp!=1)

6.在C语言中,有语句“int a,b; scanf("a=%d b=%d",&a,&b);”,下列输入方法能使a的值为2、b的

值为3的是

A. a=2 b=3

B. a=2,b=3

C. 2,3

D. 2 3

7.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是

A. switch(x)

B. switch((int)x);

{ case 1.0: printf("*\n"); { case 1.0:printf("*\n");

case 2.0: printf("**\n"); case 2.0: printf("**\n");

} }

C. switch(a+b)

D. switch(a+b)

{ case 1: printf("*\n"); { case 1: printf("*\n");

case 2+1: printf("**\n"); } case c: printf("**\n");

} }

8.以下程序段的输出结果是

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

p=a;

*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));

A. 0,5

B. 1,5

C. 0,6

D. 1,6

9.C语言中函数返回值的类型由( )决定的。

A. return语句中的表达式类型

B. 调用该函数的主调函数的类型

C. 调用函数时临时决定

D. 定义函数时所指定的函数类型

10.在C语言中,有以下程序段:

int a=10,b=O;

do{ b+=2;

a-=2+b; } while(a>=O);

程序段中循环体的执行次数是

A.2 B.3 C.4 D. 5、

11.在C语言中,以下函数定义格式正确的是

A.double fun(int x,int y) B.fun(int x,y)

{ z=x+y; { int z;

retun z; return z;

} }

C.fun(x,y) D.double fun(int x,int y)

{ int x,y; { double z;

double z; z=x+y;

z=x+y; return z;

return z; }

}

12.以下叙述中正确的是

A. 构成C程序的基本单位是函数

B. 可以在一个函数中定义另一个函数

C. main()函数必须放在其它函数之前

D. 所有被调用函数一定要在调用之前进行定义

13.在C语言中,以下错误的定义语句是

A. int x[][3]={{0},{1},{1,2,3}};

B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D. int x[][3]={1,2,3,4};

14.在C语言中,有以下程序段:

char str[]="\tab\n\012\\\"";

printf("%d",strlen(str));

其输出结果是

A.3 B. 4

C.7 D.13

15.能正确表示a和b同时为正或同时为负的表达式是

A. (a>=0||b>=0)&&(a<0||b<0)

B. (a>=0&&b>=0)&&(a<0&&b<0)

C. (a+b>0)&&(a+b<=0)

D. a*b>0

16.若int i=10;执行下列程序后,变量i的正确结果是

switch(i)

{ case 0:i+=1;

case 10:i+=1;

case 11:i+=1;

default:i+=1;

}

A. 10

B.11

C. 12

D. 13

17.设有如下定义:

struct sk

{ int a;float b; } data, *p;

若有p=&data,则对data中的成员a的正确引用是

A. (*p).data.a

B. (*p).a

C. p->data.a

D. p.data.a

18.在下面关于指针的说法中,错误

..的一条是

A. 变量的指针就是变量的地址

B. 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量

C. 一个指针变量只能指向同一个类型的变量

19.以下程序运行后的输出结果是

#include

main()

{ int i=5,j=0;

do j=j+(--i);

while(i<2);

printf("%d\n",j);

}

A. 4

B. 5

C. 6

D. 9

20.C语言规定,程序中各函数之间

A. 既允许直接递归调用也允许间接递归调用

B. 不允许直接递归调用也不允许间接递归调用

C. 允许直接递归调用不允许间接递归调用

D. 不允许直接递归调用允许间接递归调用

21.在下列叙述中,错误

..的一条是

A. 全局变量存放在静态存储区中,在程序开始执行时就给全局变量分配存储区,程序执行完才释放

B. 在有参函数中,形参在整个程序一开始执行时便分配内存单元

C. 用数组名作函数实参和形参时,应在主调函数和被调用函数中分别定义数组

D. 在同一个源文件中,全局变量与局部变量同名时,在局部变量的作用范围内,全局变量不起作用

22.在下列叙述中,正确的一条是

A. puts和gets函数只能输入或输出一个字符串

B. 在C语言中,函数可以递归调用或递归定义

C. 用scanf函数输入数据时可以规定精度,例如scanf("%7.2f",&a);

D. 外部变量只限于本文件中使用

23.在下列的函数调用中,不正确

...的是

A. max(a,b);

B. max(3,a+b);

C. max(3,5);

D. int max(a,b);

24.下列程序的输出结果是

#include

struct abc

{ int a,b,c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}};

int t;

t=s[0].a+s[1].b%s[0].c;

printf("%d\n",t);

}

A. 2

B. 3

C. 4

D. 7

25.C语言中,要求运算数必须是整型的运算符是

A. %

B. /

C. <

D. !

二、填空题(共10题,每题1分,共10分)

请按照试题中对应的标号顺序填写到答题表中

1.设n=10,i=4,则赋值运算n%=i+1执行后,n的值是。

2.在C语言中,优先级最低的运算符是。

3.设char w;int x;float y;double z;,则表达式w*x+z-y的值的类型是。

4.设char s[]="hello!";,则数组s有个元素。

5.在C语言中,若x为整型变量,则(!x)==(x!=0)的值为。

6.C语言提供的预处理功能主要有三种:、文件包含和条件编译。

8.若定义函数时类型缺省,则该函数默认的类型是____________。

9.设int a=1,b=2,m=2,n=2;,执行表达式(m=a

10.定义int i=1;执行语句 while(i++<5);后,i的值为。

三、判断题

判断下题是否正确,正确的划√,错误的划×(每题1分,共15分)

( ) 1. 语句scanf("%5.2f",&a);是非法的。

( ) 2. break,return 所起的作用是一样的,都是跳出循环。

( ) 3. C语言中的变量按作用域分为两种:即局部变量和全局变量。

( ) 4. 运算符的优先级依次为(由高到低):!(非)、关系运算符、算术运算符、&&和||、赋值运算符。( ) 5. 包含命令中的文件名可以用双引号括起来,也可以用括号括起来,如:#include "stdio.h"、#include (math.h)。

( ) 6. 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。

( ) 7. 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。

( ) 8. 二维数组a[3][4]可分解为三个一维数组a[0]、a[1]、a[2],这三个一维数组都有4个元素。( ) 9. 语句printf("%d",'3')的输出结果是51。

( ) 10.C语言程序通过编译、运行后,其结果都是正确的。

( ) 11.C语言每个语句必须以“;”结束。

( ) 12.C语言中的所有变量都不能存放地址。

( ) 13.结构体变量所占的空间字节数等于其成员变量所占空间字节数的最大值。

( ) 14.C语言本身未提供输入输出语句,但可通过输入输出函数来实现数据的输入输出。

( ) 15.for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3)。

四、阅读程序题

本题共5小题,每小题5分,共25分,请写出程序的运行结果

1.【程序】

#include

main()

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

void tran(int *);

tran(a);

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

printf("%3d",a[i]);

}

void tran(int *p)

{ int t,*d,*e;

d=p;e=p+9;

while(d

{ t=*d;*d=*e;*e=t;

d++;e--;

}

}

【运行结果】

2.【程序】请写出输入“24,16”时的输出结果

#include

main()

{ int a,b,num1,num2,temp;

scanf("%d,%d",&num1,&num2);

if(num1>num2)

{ temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{ temp=a%b;

a=b;

b=temp;

}

printf("%d,%d\n",a,num1*num2/a);

}

【运行结果】

3.【程序】

#include

int fun(int n)

{ static int f=1;

f=f*n;

return f;

}

main()

{ int i;

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

printf("%d\t",fun(i));

}

【运行结果】

4.【程序】

#include

main()

{ int a=3,b=2,c=1;

c-=++b;

b*=a+c;

{ int b=5,c=12;

c/=b*2;

a-=c;

printf("%d,%d,%d,", a,b,c);

a+=--c;

}

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

}

【运行结果】

5.【程序】程序运行时,输入B

#include

main()

{ char grade;

scanf("%c",&grade);

switch(grade)

{ case'A':printf(">=85");

case'B':printf(">=75");

case'C':printf(">=60");

case'D':printf("<60");

default:printf("errror");

}

}

【运行结果】

相关主题
文本预览
相关文档 最新文档