C语言模拟考试题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
正确 错误