C试卷1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单选题:(40分)

1.设有int x=11; 则表达式( 1/3 * ++ x ) 的值是

A) 0 B) 3 C) 11 D) 12

2.定义int x=9 , y=4 , *p ; 执行p=&y ; y=x+++*p ; 后,则*p 的值为:(A)4 B)9 C)13 D)14

3. 当C只包含一个函数时,函数名必须是( ) .

A) scanf B) printf C) main D) return

4.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是

A) if (x>0) y=1; B) if(x)

else if(x<0) y=-1; if(x>0) y=1;

else y=0; else if(x<0) y=-1;

else y=0;

C) y=-1 D) y=0;

if(x) if(x>=0)

if(x>0) y=1; if(x>0) y=1;

else if(x==0) y=0; else y=-1;

else y=-1;

5.阅读程序

#include

main()

{int i=4,a;

a=i++;

printf(“a=%d,i=%d”,a,i);}

A) a=4,i=4 B) a=5,i=4 C) a=4,i=5 D) a=5,i=5 6.以下循环体的执行次数是

main()

{ int i, j;

for(i=0, j=1; i<=j+1; i+=2, j--) printf("%d \n", i);

}

A) 3 B) 2 C) 1 D) 0

7.以下叙述中不正确的是

A) 在不同的函数中可以使用相同名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

8.设float m=2.3,n=2.8;int i=10; 表达式m+i%3*(int)(m+n)%2/8的值是( )

A) 1.5 B) 0.5 C) 2.3 D) 2.8

9.设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

A) k=*P1+*P2; B) p2=k; C) P1=P2; D) K=*P1 * (*P2);

10. 假设struct student

{ int num;

float score;

}stu_1;

欲输入结构成员num的值,下列函数调用中正确的是( ).

A) scanf(“%d”,stu_1.num); B) scanf(“%d”,&student.num);

C) scanf(“%d”,&num); D) scanf(“%d”,&stu_1.num);

11.定义int str[12][9] ; 关于str[9] 下面哪个说法是错误的:

A)str[9] 与&str[9][0] 相等

B)str[9] 与++*(str+8) 相等

C)str[9] 与*(str+9) 相等

D)str[9] 与(str+9) 相等

12.下面关于字符数组str的输入语句中,正确的是( )

A) scanf(“%c”,&str[0]); B) scanf(“%s”,&str);

C) scanf(“%s”,str[0]); . D) scanf(“%c”,str[0]);

13.函数mult 定义如下,若要求3*5*7*9 的值可调用().

int mult(int x,int y)

{

return (x*y);

}

A) mult(3,5,7,9) B) mult(mult(mult(9,7),3),5)

C) mult((3,5),(7,9)) D) mult(mult(mult(3,5,7,9)))

14.下述程序的输出结果是()

#include

main()

{ int a =2;

a%=4-1;

a+=a*=a-=a*=3;

printf(“%d”,a);

}

A) 2, 0 B) 1,0 C)-1, 12 D)2, 12

15.若有以下定义和语句:

int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;

则不能表示a数组元素的表达式是

A) *p B) a[10] C) *a D) a[p-a]

16.下列程序片段中不正确的字符串赋值或初始化方式是()

A) char *str; B) char str[10];

str=”string”; str=”string”;

C) char str[7]={…s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟,‟\0‟};

D)char str[]=”string”;

17. 下述语言句中,()可以在字符串s1和s2相等是显示“ abcd“。

A) if(s1==s2) puts(“abcd”);

B) if(!strcmp(s1,s2))puts(“abcd”);

C) if(*s1==*s2)puts(“abcd”);

D) if(strcmp(s1,s2))puts(“abcd”);

18.以下叙述正确的是

A) do-while语句构成的循环不能用其它语句构成的循环来代替。

B) do-while语句构成的循环只能用break语句退出。

C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。

19. 若已定义x为int 类型变量,则下面说明指针变量pb的语句()是正确

的。

A) int pb=&x ; B) int *pb=x;

C) int *pb=&x; D) *pb=*x;

20. C语言的说明语句“ char *line[5];”的含义是指()。

相关文档
最新文档