2014春电子科大《C语言程序设计》在线作业2

所属学校:电子科技大学 科目:C语言程序设计 2015-03-17 12:43:35



一、单选题(共 20 道试题,共 100 分。)

V

1.  有定义:int x,*p;,能使指针变量p指向变量x的语句是(B )

A. *p=&x;

B. p=&x;

C. *p=x;

D. p=*&x;

     满分:5  分

2.  判断字符串s1是否大于字符串s2应当使用(D )

A. if (sls2)

B. if (strcmp(s1,s2))

C. if (strcmp(s2,sl)0)

D. if (strcmp(s1,s2)0)

     满分:5  分

3.  有以下程序段:int x=0,s=0; while (!x!= 0) s+=++x; printf("%d",s); 则有以下程序段( B)

A. 运行程序段后输出0

B. 运行程序段后输出1

C. 程序段中的控制表达式是非法的

D. 程序段执行无限次

     满分:5  分

4.  根据下面的定义,能印出字母m的语句是( )根据下面的定义,能印出字母M的语句是(D ) struct person{char name[9];int age;}; struct person class[10]={“john”,17, “paul”,19, “mary”,18, “adam”,16};

A. printf(“%c/n”,class[3].name);

B. printf(“%c/n”,class[3].name[1]);

C. printf(“%c/n”,class[2].name[1]);

D. printf(“%c/n”,clsaa[2].name[0]);

     满分:5  分

5.  #define能作简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是(C )

A. #define f(x) 4*x*x+3*x+2

B. #define f 4*x*x+3*x+2

C. #define f(a) (4*a*a+3*a+2)

D. #define (4*a*a+3*a+2)f(a)

     满分:5  分

6.  若用数组名作为函数调用的实参,传递给形参的是( A)

A. 数组的首地址

B. 数组中第一个元素的值

C. 数组中的全部元素的值

D. 数组元素的个数

     满分:5  分

7.  建立函数的目的之一是( B)

A. 提高程序的执行效率

B. 提高程序的可读性

C. 减少程序的篇幅

D. 减少程序文件所占内存

     满分:5  分

8.  main函数的正确说明形式是(B )

A. main(int argc,char *argv)

B. main(int abc,char **abv)

C. main(int argc,char argv)

D. )main(int c,char v[])

     满分:5  分

9.  对下面程序段: #define A 3 #define B(a) ((A+1)*a) x=3*(A十B(7)); 正确的判断是(B )

A. 程序错误,不许嵌套宏定义

B. )x=93

C. x=21

D. 程序错误,宏定义不许有参数

     满分:5  分

10.  标准库函数fgets(s,n,f)的功能是(D ) 此答案错误

A. 从文件f中读取长度为n的字符串存入s中

B. 从文件f中读取长度小于n的字符串存入s中

C. 从文件f中读取n个字符串存入s中

D. 从文件f中读取长度为n-1的字符串存入s中

     满分:5  分

11.  下面函数调用语句含有实参的个数为(B ) func((expl,exp2), (exp3,exp4,exp5));

A. 1

B. 2

C. 4

D. 5

     满分:5  分

12.  下面程序应能对两个整型变量的值进行交换。以下正确的说法是( D) main( ) {int a=10,b=20; printf("(1)a=%d,b=%d/n",a,b); swap(&a,&b); prinif("(2)a=%d,b=%d/n",a,b);} swap(int p,int q) {int t; t=p;p=q;q=t;}

A. 该程序完全正确

B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可

D. 以上说法都不正确

     满分:5  分

13.  下面程序段的运行结果是(C ) int n=0; while(n++<=2); printf("%d",n);

A. 2

B. 3

C. 4

D. 有语法错误

     满分:5  分

14.  以下正确的函数形式是(D )

A. double fun(int x,int y) {z=x+y; return z;}

B. fun(int x,y) {int z; return z;}

C. fun(x,y) {int x,y; double z; z=x+y; return z;}

D. double fun(int x,int y) {double z; z=x+y; return z;}

     满分:5  分

15.  以下关于枚举的叙述不正确的是(D )

A. 枚举变量只能取对应枚举类型的枚举元素表中元素

B. 可以在定义枚举类型时对枚举元素进行初始化

C. 枚举元素表中的元素有先后次序,可以进行比较

D. 枚举元素的值可以是整数或字符串

     满分:5  分

16.  下述程序的输出结果是(A ) #include <stdio.h void main()  {enum team {jone,adam,smith=10,bob=smith+2,liang};  printf("%d,%d",adam,liang);  }此答案错误

A. 1,13

B. 2,13

C. p-data.a

D. p.data.a

     满分:5  分

17.  下列四组选项中,均不是C语言关键字的选项是( A)

A. define IF type

B. geto char printf

C. include scanf case

D. while go pow

     满分:5  分

18.  有定义:int *p1,*p2;,则正确的赋值语句为(A )

A. p1=p2;

B. p1/=p2;

C. p1+=p2;

D. p1*=p2;

     满分:5  分

19.  C语言规定,函数返回值的类型是由(D ) 决定的

A. return语句中的表达式类型

B. 调用该函数时的主调函数类型

C. 调用该函数时由系统临时

D. 在定义函数时所指定的函数类型

     满分:5  分

20.  以下能对一维数组a进行正确初始化的语句是( D) 此答案错误

A. int a[10]=(0,0,0,0,0)

B. int a[10]={}

C. int a[]={0};

D. int a[10]={10*1};

     满分:5  分

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: