国二C语言 模拟考试题

  • 格式:doc
  • 大小:250.00 KB
  • 文档页数:52

C语言 模拟试题

选择题(1)

1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是:

A. &c[3]

B. pc[3]

C. pc+2

D. &c

2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:

A. 5

B. 7

C. 3

D. 4

3设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:

struct student

{

char name[20];

int age;

char sex;

}stu[5], *p;

p=stu;

A. scanf("%s", stu[0].name);

B. scanf("%d", p->age);

C. scanf("%c", &p->sex);

D. scanf("%d", &stu[0].age);

4若有定义:int b=7;float a=2.5,c=4.7;

则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:

A. 0

B. 1

C. 2

D. 3

5若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:

A. 4

B. 2

C. 6

D. 8

6若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a

A. 1

B. 2

C. 3

D. 4

7putchar()函数可以向终端输出一个:

A. 整型变量表达式值

B. 实型变量值

C. 字符串

D. 字符或字符型变量值

8下列各语句中正确定义了数组的是:

A. int a[5],b[2,3];

B. char str(30);

C. int x[];

D. int x[5]={1,2,3};

9将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是:

A. c= =(a>b)? a:b;

B. c=(a>b)?a:b;

C. c=if(a>b)a else b;

D. (a

10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:

A. 1

B. 2

C. 2.0

D. 2.5

11以下语句或语句组中,能正确进行字符串赋值的是:

A. char s[10]; s="right!";

B. char *sp="right!";

C. char s[10]; *s="right!"

D. char *sp; *sp="right!";

12若int a[ ][4]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:

A. 1

B. 2

C. 3

D. 无确定值

13若要求以下程序的输出结果是a=5,b=4,则输入数据的形式应该是:

#include “stdio.h”

main()

{ int a,b;

scanf("%d,b=%d",&a,&b);

printf("a=%d,b=%d",a,b); }

A. 5 4

B. 5,4

C. 5 b=4

D. 5,b=4

14以下运算符中,优先级最高的是:

A. <=

B. &&

C. =

D. ++

15以下对C语言函数的描述中,不正确的是:

A. C语言中,函数可以嵌套定义

B. C语言中,函数可以递归调用

C. C语言中,函数可以没有返回值

D. C语言程序由函数组成

16若有以下定义和语句,则不能访问数组元素的表达式是:

int i=2,*p,a[ ]={1,2,3,4,5};

p=a;

A. *(a+i)

B. a[p-a]

C. p+i

D. *(&a[i])

17C语言中NULL表示:

A. 空指针

B. 变量未找到

C. 字符串的结束符

D. 文件的结束符

18以下程序的运行结果是:

#include "stdio.h"

main()

{ int m=5;

if (m++>5) printf("%d\n",m);

else printf("%d\n", m--);}

A. 4

B. 5

C. 6

D. 7

19以下程序的运行结果是:

#include "stdio.h"

main()

{int a[][3]={{1,2,3},{4,5},{6},{0}};

printf("%d,%d,%d\n",a[1][1],a[2][1],a[3][1]); }

A. 3,2,1

B. 5,0,0

C. 4,1,0

D. 1,5,0

20下面程序的运行结果是:

#include "stdio.h"

main()

{int a[10]={2,4,6,8,10,12,14,16,18},*p;

p=a+5;

printf ("%d,%d\n",*(p+1),*++p+1); }

A. 16,15

B. 14,16

C. 16,18

D. 15,14

21以下程序的输出结果是: #include "stdio.h"

fun2( int a,int b)

{ int c;

c=a*b%3;

return c;}

fun1(int a,int b)

{ int c;

a+=a;b+=b;

c=fun2(a,b);

return c*c;}

main()

{ int x=11,y=19;

printf("%d\n", fun1(x,y));}

A. 3

B. 5

C. 4

D. 6

22以下程序运行后的输出结果是?

#include "stdio.h"

#define SQR(x) x*x

main()

{ int a,k=3;

a=++SQR(k+1);

printf("%d\n",a); }

A. 7

B. 8

C. 9

D. 10

23执行语句for(i=10;i>0;i--);后,变量i的值为:

A. 10

B. 0

C. 9

D. 1

24下列i,j,k 均为整型变量,选项中不正确的C语言赋值语句是:

A. i+1=k;

B. i=j=k=1;

C. i=j+=++k;

D. j=i+1==i++;

25设有语句int a[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则不能对a数组元素的正确引用是:

A. a[p-a]

B. *(*(a+5))

C. p[5]

D. *(&a[5])

26已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是:

A. 数组a和b的元素个数相同

B. a数组元素少于b数组

C. a数组元素多于b数组

D. 上述说法都不对

27以写方式打开二进制文件my.dat的正确写法是:

A. fopen(“my.dat”,”rb”);

B. fopen(“my.dat”,”r”);

C. fopen(“my.dat”,”wb”);

D. fopen(“my.dat”,”w”);

28对于定义

struct sa

{int x;float y;}data,*p=&data;

请从下列候选答案中,选择变量data的x成员的正确引用:

A. (*p).data