C语言模拟考试题目

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单选(共60分)
1. 若有说明: int a[3][4];则对a数组元素的正确引用是( )

A、a[2][4]

B、a[1,3]

C、a[1+1][0]

D、a(2)(1)


2. 在C语言中,函数返回值的类型可以是( )

A、基本类型

B、指针类型

C、数组类型

D、以上全是


3. 以下函数调用语句中含有( )个实参。

func((exp1,exp2),exp3,exp4,exp5);

A、1

B、2

C、4

D、5


4. 以下正确的函数定义形式是()。

A、double fun(int x,int y){}

B、double fun(int x;int y) {}

C、double fun(int x,int y);

D、double fun(int x, y) {}


5. 以下正确的说法是( )。

A、用户若需要调用标准库函数,调用前必须重新定义

B、用户可以重新定义标准库函数,如若此,该函数将失去原有定义

C、系统不允许用户重新定义标准库函数

D、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用


6. 以下错误的定义语句是( )

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

B、int x[4][3]={{l,2,3},{l,2,3},{l,2,3},{l,2,3}};

C、int x[4][ ]={{l,2,3},{l,2,3},{l,2,3},{l,2,3}};

D、int x[ ][3]={l,2,3,4};


7. C语言规定,程序中各函数之间( )。

A、既允许嵌套调用又允许递归调用

B、不允许嵌套调用又不允许递归调用

C、允许嵌套调用不允许递归调用

D、不允许嵌套调用允许递归调用


8. 以下关于return语句的叙述中正确的是( )。

A、一个自定义函数中必须有一条return语句

B、一个自定义函数中可以根据不同情况设置多条return语句

C、定义成void类型的函数中可以有带返回值的return语句

D、没有return语句的自定义函数在执行结束时不能返回到调用处


9. 当(),可以不进行函数类型说明。

A、被调函数的返回值是整型或字符型时

B、被调函数的定义在主调函数定义之前时

C、在所有函数定义前,已在函数外预先说明了被调函数类型

D、以上都是


10. 以下正确的说法是()。

A、用户若需调用标准库函数,调用前必须重新定义

B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C、系统根本不允许用户重新定义标准库函数

D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调


11. 当需要接受用户从键盘输入的含有空格的字符串时,应使用_________函数

A、scanf

B、getline

C、getchar

D、gets


12. 在程序执行过程中,该程序的某一个函数func()中说明的static型变量y有这样的特性( )。

A、y存在于func()被调用期

间且仅能被其所用

B、y存在于func()被调用开始到程序执行结束且仅能被func()所用

C、y存在于func()被调用期间且被所有函数所用

D、y存在于func()被调用开始到程序执行结束且可被所有函数所用


13. C语言中,若对函数类型说明为void型,则表示函数为()类型。

A、无值

B、无操作

C、不能调用

D、返回0值


14. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )

A、实参和形参共同表示同一变量,形参值是只读的,不能修改

B、实参和形参共同表示同一变量,形参值的改变,也会改变实参

C、实参将其值复制给形参,形参值的改变,也会改变实参

D、实参将其值复制给形参,形参值的改变,不会改变实参


15. 下面对函数嵌套的叙述中,正确的叙述为( )。

A、函数定义可以嵌套,但函数调用不能嵌套

B、函数定义不可以嵌套,但函数调用可以嵌套

C、函数定义和调用均不能嵌套

D、函数定义和调用均可以嵌套


16. 设有以下语句:

char str1[]="string",str2[8],*str3,*str4="string";

则( )不是对库函数strcpy的正确调用。

A、strcpy(str1,"HELLO1");

B、strcpy(str2,"HELLO2");

C、strcpy(str3,"HELLO3");

D、strcpy(str4,"HELLO4");


17. 设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是( )。

A、auto

B、register

C、static

D、auto或register


18. 有以下程序

#include

int fun()

{

static int x=5;

x++;

return x;

}

main()

{

int i,x;

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

x=fun();

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

}

程序的运行结果是()。

A、5

B、6

C、7

D、8


19. 若有说明:int a[][4]={{1},{1}};,则下面不正确的叙述是:( )。

A、数组a共有两行四列

B、二维数组a的第一维大小为2

C、只有元素a[0][0]和a[1][0]可得到初值1,其余元素均为0

D、只有元素a[0][0]和a[0][1]可得到初值1,其余元素均得不到初值


20. 有关一维数组做参数,以下描述正确的是( )

A、一维数组做参数是值传递

B、一维数组做参数是地址传递

C、形参格式是:数组名【大小】

D、实参格式是:数组名【大小】


21. 有以下程序

#include

void fun(int a, int b)

{

int t;

t=a;

a=b;

b=t;

}

main()

{

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

for(i=0;i<10;i+=2) fun(c[i],c[i+1]);

for (i=0;i<10;i++) printf("%d,",c[i]);

printf("\n");

}

程序运行的结果是( )

A、1,2,3,4,5,6,7,8,9,0,



B、2,1,4,3,6,5,8,7,0,9,

C、0,9,8,7,6,5,4,3,2,1,

D、0,1,2,3,4,5,6,7,8,9,


22. 有以下程序

#include

int fun(int x, int y)

{

if (x==y) return(x);

else return((x+y)/2);

}

main( )

{

int a=4,b=5,c=6;

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

}

程序运行后的输出结果是( )。

A、3

B、6

C、8

D、12


23. 以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。

main( )

{ int i,p=0,a[10];

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

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

if(a[i]
printf("%d,%d\n",a[p],p);

}

A、i=p

B、a[p]=a[i]

C、p=j

D、p=i


24. 下列选项中正确的语句组是:( )

A、char s[8]; s={"Beijing"};

B、char *s; s={"Beijing"};

C、char s[8]; s="Beijing";

D、char *s; s="Beijing";


25. 有以下程序

#include

int fun1(double a)

{

return a*=a;

}

int fun2(double x,double y)

{

double a=0,b=0;

a=fun1(x);b=fun1(y);

return(int)(a+b);

}

void main()

{

double w;w=fun2(1.1,2.0);

}

程序执行后变量w中的值是()。

A、5.21

B、5

C、5.0

D、0.0


26. 有以下程序

#include

int fun()

{

static int x=1;

x*=2;

return x;

}

void main()

{

int i,s=1;

for (i=1;i<=2;i++) s=fun();

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

}

程序的运行结果是()。

A、0

B、1

C、4

D、8


27. 若有说明:int a[3][4];则对a 数组元素的正确引用是( )

A、a[3]

B、a[4]

C、a[3][4]

D、a[2][2]


28. 有如下程序

main()

{ char ch[80];

int j;long s=0;

printf("Enter a numeral string\n"); gets(ch);

for(j=0;ch[j]>'\0';j++)

s=10*s+ch[j]-'0';

printf("%ld\n",s);

}

如果运行时,从键盘上输入由数字组成的字符串,

该程序的功能是( )。

A、测字符数组ch的长度

B、将数字字符串ch转换成十进制数

C、将字符数组中的小写字母转换成大写

D、将字符数组中的大写字母转换成小写


29. main( )

{ char ch[7]={“65AB21”};

int i,s=0;

for(i=0;ch[i]>=’0’ && ch[i]<=’9’;i+=2)

s=10*s+ch[i]-‘0’;

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

}

A、12ba56

B、6521

C、6

D、62


30. 以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include

#include

main()

{ char s[80], d[80]; int i, j;

gets(s);

for(i=j=0; s[i]!=‘\0’; i++)


if(_____________) { d[j]=s[i]; j++;}

d[j]=‘\0’;

puts(d);

}

A、s[j]>=0 && s[j]<=9

B、s[j]>=’0’&& s[j]<=’9’

C、s[j]>=1 && s[j]<= 6

D、s[j]>=’1’&& s[j]<=’6’


二、判断(共40分)
1. 在C语言的函数中,必须有形参。

正确 错误

2. 数组名作为函数参数时,形参数组与实参数组共用内存空间。

正确 错误

3. 函数必须有返回值,返回值类型不定。

正确 错误

4. 在C语言的函数中,一个自定义函数中必须有一条return语句。

正确 错误

5. int a[10],a是数组的首地址

正确 错误

6. 若有定义和语句:char s[10]; s=”abcd”; printf(“%s\n”,s); 则结果是”abcd”

正确 错误

7. 在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参。

正确 错误

8. 执行下面的程序段后,变量k中的值为不定值

int k=3,s[2];

s[0]=k; k=s[1]*10;

正确 错误

9. 函数必须有返回值,否则不能使用函数。

正确 错误

10. 在C语言的函数中,没有return语句的自定义函数在执行结束时不能返回到调用处。

正确 错误

11. 表达式strlen(“string”)+strlen(“C”)的运算结果为7

正确 错误

12. 实参可以是常量、变量或表达式,但可以不确定其值。

正确 错误

13. 已知数组int a[]={10, 20, 30, 40,50},则执行语句a[2]++;后a[2]=31

正确 错误

14. 在C语言的函数中,定义函数时,形参的类型说明可以放在函数体内。

正确 错误

15. 结构体数组不能进行初始化

正确 错误

16. 在C语言中,主函数main中定义的变量在整个文件或程序中有效。

正确 错误

17. char*str;str=‘a’;是对字符串赋值操作

正确 错误

18. 数组名作为函数参数进行传递,传递的是数组的首地址。

正确 错误

19. 在C语言的函数中,return后边的值不能为表达式。

正确 错误

20. 有如下程序

main()

{ int n[5]={0,0,0},i,k=3;

for(i=0;i
printf("%d\n",n[k]);

}

运行结果是4

正确 错误

相关文档
最新文档