中南大学现代远程教育课程考试复习题及参考答案
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.若将310从键盘输入给变量ax,输入语句为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->numst1->num等价。 B  ps.numst1.num等价。
  C  ps->numnum等价。      D  ps->numst1.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  的值是:
不确定      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++;ai的值分别为:
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 cd            1  abc=d
            8  a<b c=d              8  a<b c=d
C  x=                        D  x=
1 ab                    1  a<b
11.将字符串“Wan    Ming”输入数组ch中,正确的是:
    Ascanf(“%s”,ch)          Bscanf(“%s”,&ch)   
Cch=Wan    Ming      Dgets(ch)
12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:
    AA                      BB   
CD                      DE
13.下列关于main()函数说法正确的是
A、 C语言程序总是从main()开始执行 
B、 C语言程序可以没有main()函数
CC语言程序可以包含多个main()函数,但必须在不同的模块中     
DC语言程序中main()函数不能有形式参数
14下列关于函数说法正确的是
A、 C语言程序的函数内还可定义其他的函数
B、 C语言程序的函数内不可再定义其他的函数
C、 C语言程序的函数不能自己调用自己
D、 C语言程序中只有同一源文件中的函数才能有调用与被调用关系
15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:
Aresult=36      B36        Cresult=11      D11
16. #define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:
Aresult=36      Bresult=17    Cresult=11      Dresult=25
17C语言对宏命令叙述正确的是
A、 宏替换占用运行时间
B、 编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的
C、 宏命令的处理是在程序执行时进行的
D、 宏命令的处理是在程序连接时进行的
18. 若执行语句a- =a+=a*=10;a的值为:
A0              B-10          C-100          D100
19.若执行语句p=arr;  printf(“%d”,*(p+i));输出结果为
A0              B2          C3              D1
20.若执行printf(“%s”,ch);结果为:
A’abc’          Babc        Cabcd      Dabc\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小时内删除。