中南大学现代远程教育课程考试复习题及参考答案
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
scanf输入整型数组
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=
1 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()函数说法正确的是
A、 C语言程序总是从main()开始执行
B、 C语言程序可以没有main()函数
C、C语言程序可以包含多个main()函数,但必须在不同的模块中
D、C语言程序中main()函数不能有形式参数
14.下列关于函数说法正确的是
A、 C语言程序的函数内还可定义其他的函数
B、 C语言程序的函数内不可再定义其他的函数
C、 C语言程序的函数不能自己调用自己
D、 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语言对宏命令叙述正确的是
A、 宏替换占用运行时间
B、 编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的
C、 宏命令的处理是在程序执行时进行的
D、 宏命令的处理是在程序连接时进行的
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),其操作结果是
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论