该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
西工大机考《C语言程序设计》网考
寻求答案(非免费)找我Q和V:2082851315
试卷总分:100 得分:96
一、 单选题 (共 35 道试题,共 70 分)
1. 若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是( )。
A.a[2][!1]
B.a[2][3]
C.a[0][3]
D.a[1>2][!1]
2. 以下描述错误的是( )。
A.break语句不能用于循环语句和switch语句外的任何其他语句
B.在switch语句中使用break语句或continue语句的作用相同
C.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
3. 以下存储类型只有在使用时才为该类型变量分配内存的是( )。
A.auto和static
B.auto和register
C.register和static
D.static和extern
4. 若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是( )。
A.程序段有语法错
B.3,5,3
C.3,5,5
D.3,5,7
5. 函数strlen("1234\0xy")的值为( )。
A.7
B.8
C.4
D.9
6. 若二维数组a由m列,则在a[i][j]之前的元素个数为( )。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
7. 假定x和y为 double型,则表达式x=2,y=x+3/2的值是( )。
A.3.500000
B.3
C.2.000000
D.3.000000
8. 设变量已正确定义并赋值,以下正确的表达式是( )。
A.x=y*5=x+z
B.int(15.8%5)
C.x=y+z+5,++y
D.x=25%5.0
9. 在C语言中,设一表达式中包含有int,long,char和unsigned类型的变量和数据,则这4种类型数据转换的规则是( )。
A.int→unsingned→long→char
B.char→int→long→unsingned
C.char→int→unsigned→long
D.int→char→unsigned→long
10. 若有说明:int *p,m=5,n;,以下正确的程序段是( )。
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
11. 在C语言中,变量的隐含存储类别是( )。
A.auto
B.static
C.extern
D.无存储类别
12. 函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是( )。
A.funa(int *x, int *y)
{ int *p;
*p=x; *x=*y; *y=*p;
}
B.funb(int x, int y)
{ int t;
t=x; x=y; y=t;
}
C.func(int *x, int *y)
{ *x=*y; *y=*x;
}
D.{fund(int *x, int *y)
13. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( )。
A.auto和register
B.extern和register
C.auto和static
D.static和register
14. 以下定义语句中正确的是( )。
A.int a=b=0;
B.char A=65+1,b=′b′;
C.float a=1,*b=&a,*c=&b;
D.double a=0.0;b=1.1;
15. 以下描述中正确的是( )。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
16. 下面程序的输出结果是( )。
main()
{
int s,k;
for(s=1,k=2;k<5;k++) s+=k;
printf("%d\n",s);
A.1
B.9
C.0
D.15
17. 以读写方式打开一个已有的文件file1,下面有关fopen函数正确的调用方式为( )。
A.FILE *fp;fp=fopen("file1";"f");
B.FILE *fp;fp=fopen("file1","r+");
C.FILE *fp;fp=fopen("file1","rb");
D.FILE *fp;fp=fopen("file1","rb+");
18. 设int a=12,则执行完语句a+=a-=a*a后,a的值是( )。
A.552
B.264
C.144
D.-264
19. 阅读下列程序,则运行结果为( )。
#include "stdio.h"
fun()
{ static int x=5;
x++;
return x;\
A.5
B.6
C.7
D.8
20. 运行下面程序:
main()
{
int n1,n2;
scanf("%d",&n2);
while(n2!=0)
\ n1=n2%10;
n2=n2/10;
}
printf("%d",n1);
}若从键盘上输入298↙ ,则输出结果为( )。
A.2
B.29
C.8
D.0
21. C语言规定,在一个源程序中,main函数的位置( )。
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
22. 已知double *p[6]; 它的含义是( )。
A.p是指向double类型变量的指针
B.p是double类型数组
C.p是指针数组
D.p是数组指针
23. 以下叙述中错误的是( )。
A.在程序中凡是以"#"开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#define MAX 是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
24. 为了判断两个字符串s1和s2是否相等,应当使用( )。
A.if(s1==s2)
B.if(s1=s2)
C.if(strcpy(s1, s2))
D.if(strcmp(s1, s2)==0)
25. 在下列结论中,只有一个是正确的,它是( )。
A.递归函数中的形式参数是自动变量
B.递归函数中的形式参数是外部变量
C.递归函数中的形式参数是静态变量
D.递归函数中的形式参数可以根据需要自己定义存储类型
26. 以下不正确的定义语句是( )。
A.double x[5]={2.0,4.0,6.0,8.0,10.0;
B.int y[5]={0,1,3,5,7,9;
C.char c1[]={′1′,′2′,′3′,′4′,′5′;
D.char c2[]={′\x10′, ′xa′, ′\x8′;
27. 有以下程序段
int n=0,p;
do
{ scanf("%d",&p);n++;
}while(p!=123&&n<10);
此处do-while循环的结束条件是( )。
A.P的值不等于123或者n的值小于10
B.P的值等于123并且n的值大于等于10
C.P的值不等于123并且n的值小于10
D.P的值等于123或者n的值大于等于10
28. 以下叙述中错误的是( )。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
29. 当变量c的值不为2、4、6时,值也为"真"的表达式是( )。
A.(c==2)︱︱(c==4)︱︱(c==6)
B.(c>=2&& c<=6)︱︱(c!=3)︱︱(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&& c<=6)&&(c%2!=1)
30. 运行程序:
#include
main()
{
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
}则输出结果是( )。
A.good
B.pass
C.warn
D.passwarn
31. 设有 int x=8; 则表达式 (++x*1/3) 的值是( )。
A.2
B.3
C.2.6
D.0
32. 下面程序的输出结果是( )。
main()
{ int x=5,y=9,z=1,t;
t=(x>y||x>z);
printf("%d\n",t);
A.1
B.0
C.5
D.3
33. 有以下程序
#include
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1:b++; break;
}
case 2:a++; b++; break;
case 3:a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=1,b=0
B.a=2,b=2
C.a=1,b=1
D.a=2,b=1
34. 一个C程序的执行是从( )。
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
35. 有以下程序
main()
{ int i,s=1;
for (i=1;i<50;i++)
if(!(i%5)&&!(i%3)) s+=i;
printf("%d\n",s);
A.409
B.277
C.1
D.91
二、 判断题 (共 15 道试题,共 30 分)
1. C语言的编译系统对宏命令的处理是和c程序中的其他语句同时进行编译的。
A.错误
B.正确
2. 设变量 a 为整型,f 是实型,i 是双精度型,则表达式10+'a'+i * f 值的数据类型不能确定为何类型。
A.错误
B.正确
3. (a=3)>(b=5) 是合法的关系表达式。
A.错误
B.正确
4. 预处理指令只能位于C源程序文件的首部。
A.错误
B.正确
5. 在c程序中,语句之间必须要用分号";"来分隔。
A.错误
B.正确
6. for循环是先执行循环体语句,后判断表达式。
A.错误
B.正确
7. 在C语言中char型数据在内存中的存储形式为ASCII码。
A.错误
B.正确
8. 声明语句可放在函数体中的任何位置。
A.错误
B.正确
9. 在C程序中,%是只能用于整数运算的运算符。
A.错误
B.正确
10. 设int a=12;则执行完语句a+=a-=a*a后,a的值为144。
A.错误
B.正确
11. 两个字符串所包含的字符个数相同时才能比较字符串大小。
A.错误
B.正确
12. %x是格式符的一种,它可以适用于任何一种类型的数据。
A.错误
B.正确
13. 若a和b类型相同,在执行了语句a=b后,b中的值将放入a中,b中的值不变。
A.错误
B.正确
14. 用typedef可以定义各种类型名,但不能用来定义变量。
A.错误
B.正确
15. C语言认为变量number和NuMbEr是相同的。
A.错误
B.正确
本文介绍了C语言中数组元素的正确引用,通过一系列选择题,探讨了数组引用的常见误区,如越界访问、非法索引等。同时,涵盖了C语言的关键概念,如循环、跳转语句、存储类别和类型转换。文章旨在帮助初学者理解C语言中的这些基础但重要的知识点。

被折叠的 条评论
为什么被折叠?



