C语言程序设计
一、单项选择题
若以下各题所有库函数都可以合法使用,且变量定义如下:
int m=5, i=3,j=2,*p, a=8,b=0;
int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};
float x=2.5,y=3.0;
double z=0; long n=1;
char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’};
struct student
{ int num;
char name[20];
float score;
struct student *next;
}st1,st2,*ps;
FILE *fp;
1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):
A a=3,x=10↙ B 3,10↙ C 3 10↙ D 3,10.0↙
2. 以下不是死循环的语句是:
A for ( ; ;y+=i++);
B while(a) y+=i++ ;
C do{ y+=i++}while (a>0);
D for (b=0;(c=getchar()!=’\n’);)b++;
3.若p=arr;正确的语句是:
A *p=arr[10]; B *p=arr[2*a];
C p=arr[5]; D p[i]=arr[0];
4.若ps=&st1;则下面描述正确的是:
A ps->num与st1->num等价。 B ps.num与st1.num等价。
C ps->num与num等价。 D ps->num与st1.num等价。
5.语句printf(“%d",a<i>j);的输出结果是:
A 1 B 0 C 8 D都不对
6.表达式 j/i+a%i+x 的值是:
A 6 B 4.5 C 6.0 D 5.5
7.表达式 b||a+i&&i<j 的值是:
A 不确定 B 0.0 C 1 D 0
8.若执行语句 a=b+=3*j+(int)x;则b的值为:
A 1 B 8 C 0 D 8.5
9. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:
A 4 ,4 B 3 ,4 C 4 ,3 D 3 ,3
10.if (a<b) if (c==d) x=8;else x=1;表示的逻辑关系是:
8 a<b 且c=d 8 a<b 且c=d
A x= B x=
1 a<b 且c≠d 1 a≥b且c=d
8 a<b 且c=d 8 a<b 且c=d
C x= D x=
- a≥b 1 a<b
11.将字符串“Wan Ming”输入数组ch中,正确的是:
A、scanf(“%s”,ch) B、scanf(“%s”,&ch)
C、ch=“Wan Ming” D、gets(ch)
12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:
A、A B、B
C、D D、E
13.下列关于main()函数说法正确的是
- C语言程序总是从main()开始执行
- C语言程序可以没有main()函数
C、C语言程序可以包含多个main()函数,但必须在不同的模块中
D、C语言程序中main()函数不能有形式参数
14.下列关于函数说法正确的是
- C语言程序的函数内还可定义其他的函数
- C语言程序的函数内不可再定义其他的函数
- C语言程序的函数不能自己调用自己
- C语言程序中只有同一源文件中的函数才能有调用与被调用关系
15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:
A、result=36 B、36 C、result=11 D、11
16. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:
A、result=36 B、result=17 C、result=11 D、result=25
17.C语言对宏命令叙述正确的是
- 宏替换占用运行时间
- 编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的
- 宏命令的处理是在程序执行时进行的
- 宏命令的处理是在程序连接时进行的
18. 若执行语句a- =a+=a*=10;a的值为:
A、0 B、-10 C、-100 D、100
19.若执行语句p=arr; printf(“%d”,*(p+i));输出结果为
A、0 B、2 C、3 D、1
20.若执行printf(“%s”,ch);结果为:
A、’abc’ B、abc C、abcd D、abc\0d
21.若对数组进行初始化:char carr[ ]={’s’,’t’,’u’,’d’,’e’,’n’,’t’},barr[ ]=”student”;则正确的是
A、carr与barr长度相同 B、carr比barr长
C、carr与barr相同 D、carr比barr短
22.若有说明语句int (*p)[N];则p是
A、N个指向整型变量的指针 B、可指向有N个整型元素的一维数组的指针
C、指向N个整型变量的函数指针 D、有N个指针元素的一维指针数组
23.若有说明语句int *f( );则函数f是
A、f是一个指向整型变量的数组指针 B、f返回一个整型数据
C、f是一个指向整型变量的函数指针 D、f 返回一个整型指针,指向函数本身
24.若函数f定义如下:void f(char *d, char *s)
{ while ( *d++=*s++);
}
函数f的功能是:
A、串比较 B、串复制 C、求串长 D、串反向
25.表达式100+a+’a’+x*z的值的数据类型为
A、int B、float C、double D、char
26.若要动态申请一个double型内存单元,正确的语句是
A、pd=double malloc(sizeof(double)) B、pd=( * double)malloc(sizeof(double))
C、pd=double * malloc(sizeof(double)) D、pd=(double *)malloc(sizeof(double))
27.若要从键盘上输入67892到变量n中,正确的语句是
A、scanf(“%lf”,&n); B、scanf(“%ld ”,&n);
C、scanf(“%lf ”,n); D、scanf(“%d ”,&n);
28.判断字符变量c是否不为小写英文字母的正确表达式是
A、’a’<=c <=’z’ B、c>= ‘a’ && c<=’z’
C、’a’≤c ≤’z’ D、c<’a’ || c>’z’
29.下列每组表达式被执行后,结果完全等价的是
A、 !(b= =0)与 !(!b ) B、b=(a=4,4*5) 与 b=a=4,4*5
C、float(i/j) 与 float i/j D、0<x<100 与 x>0 && x<100
30.表达式(m&1)==(m%2)的值是
A、 0 B、无法确定
C、 1 D、以上都不对
31.数学式ln2x+asin(60°)的C语言表达式是
A、log(2*x)+a*sin(60) B、ln(2*x) +a*sin(60/180*3.14)
C、ln(2*x) +a*sin(60) D、log(2*x)+a*sin(3.14*60/180)
32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是
A、fopen(“file”,”r+”) B、fopen(“file”,”w”)
C、fopen(“file”,”a+”) D、fopen(“file”,”r”)
33. 若打开文件时发生错误,则fopen()函数的返回值是
A、1 B、0 C、不确定 D、没有返回值
34. 调用函数fseek(fp,-25L,2),其操作结果是
- 文件位置指针从文件开始处前移25字节
B、文件位置指针从文件结尾处后移25字节
C、文件位置指针从文件当前位置处前移25字节
D、文件位置指针从文件当前位置处后移25字节
35. 能正确表示a和b同时为正或同时为负的逻辑表达式是
- (a>=0||b>=0)&&(a<0||b<0)
- (a>=0&&b>=0)&&(a<0&&b<0)
- (a*b>0&&(a*b<=0)
- a*b>0
36. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:
A. 0,1,1 B. 0,1,2 C. 0,2,1 D. 0,2,2
37.下列变量的初始化,不正确的是:
A. int x,y=5; B. float x=y=3.5;
C. char s[]=”a”; D. int a[][3]={{1},{},{0,9}};
38. 可以代替while(x!=0)中的条件x!=0的是:
A. x B. !x C. x==1 D. x!=1
39.有关函数参数,下列说法不正确的是:
A. 实参和形参是不同的变量; B. 实参可以将数据传给形参;
C. 形参可以将数据传给实参; D. 实参和形参必须个数相等,类型一致。
40.为避免嵌套的条件语句if-else的二义性,C语言规定else与if的配对原则是:
A. 同一行上的未配对if B. 缩排位置相同的未配对if
C. 它之前最近的未配对的if D. 它之后最近的未配对if
41.对于一个二维数组,以下几种方法中,不能正确表示i行j列元素的是:
A.td[i][j] B. *(td[i]+j) C. *(*(td+i)+j) D.*(td+i+j)
42.下面语句段不是死循环的是:
A. for(i=1;;i++) B. k=0;
s=s+i; do{ k++;
}while(k>0);
C. i=0; D. a=1;
while(1) while(a<10)
{ i++; { if(a>5) continue;
if(i==20) break; } a++; }
43.下列字符串中,可以用作变量名的是:
A. _out2 B. 12abc C. while D. stu&3
44. 表达式0<a<5和0<a&&a<5的值分别为:
A. 0和0 B. 0和1 C. 1和0 D. 1和1
45.下列常数中,符合C语法规则的是:
A. ‘\’ B. .5e2 C. 018 D. e3
46.以下为合法的整型常量的是:
A. 027a B. 0.0 C. 0x4e3 D. 3×102
47.以下为合法的整型常量的是:
A. ‘3’ B. 281 C. 5af D. ‘\101’
48.以下为合法的实型常量的是:
A. 1.5×102 B. 1e-5 C. 1e1.5 D. E+5
49.以下为合法的实型常量的是:
A. π B. .5 C. 025.3 D. 0
50.以下为合法的字符型常量的是:
A. "A" B. 64 C. '啊 ' D. '\n'
51. 以下为非法的字符型常量的是:
A. ‘ok’ B. ‘*’ C. ‘A’ D.‘\111’
- 以下为合法的变量定义的是:
- #define N 10 B. int a=12,b,c; float x,y,a=1.5;
int a[3*N];
C. int m,f(x); D. char c,*pc=&c,n;
53.以下为非法的变量定义的是:
A. char 21cn; B. int k=0,*p=&k;
C. int a=b=c=21; D. static char[4]=”Good”;
54.以下是合法的表达式的是:
A. y=mn B. (x+y)++ C. x+y=8 D. putchar('A ')
55. 以下是非法的表达式的是:
A. a+=b*c B. i=0,k=k++ C. k==0 D. !a||m≤n &&7
56.下是非法赋值语句的是:
A.a+b=0 B. pc=&x
C. ps->name=”Tan Jing” D. static char[4]=’G’,’o’,’o’,’d’
一、单项选择题
1. A 2. D 3. D 4. D 5. B 6. B 7. D 8. B 9. B 10. A
11.D 12.D 13. A 14.B 15.C 16 .D 17.B 18. A 19.C 20.B
21. D 22. B 23 .C 24 B 25.C 26.D 27.B 28 D 29 A 30.C
31. D 32.A 33 . B 34. B 35. D 36.B 37.B 38.A 39.C 40.C
41.D 42. C 43. A 44.C 45.D 46.C 47.B 48.B 49.B 50.D
51. A 52. A 53.B 54. D 55. D 56.C
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 考研C语言程序设计[选择题版]内附答案
发表评论 取消回复