C试卷1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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];”的含义是指()。