C语言的一些选择题

1、C语言中,以下叙述正确的是 【1】 。
A)一条语句可分为几行书写 B)复合语句中不能定义变量
C)break语句只能用于switch结构中 D)main函数必须位于源程序的开头

2、若有定义char s[60],则以下能正确实现字符串输入的语句是 【2】 。
A)scanf(“%s”,&s); B)getchar(s);
C)scanf(“%s”,s); D)gets(&s);

3、以下程序的运行结果是 【3】 。
main( )
{
int m=5,n=5;
if (++m>=n)
printf(“\\m=%d>=n=%d\n”,m,n);
else
printf(“m=%d\n”,m--);
}
A)m=6>=n=5 B)\m=6>=n=5
C)\m=5>=n=5 D)m=5

4、在C语言中,用户能使用的正确标识符(如变量名、函数名)是 【4】 。
A)7_for B)for C)_f#3 D)_3f

5、以下变量定义语句中,正确的是 【5】 。
A) char ch=’friends’ ; B) char ch1=ch2,ch2 ;
C) char *str=”s” ; D) char ch[1]=’y’ ;

6、以下程序的运行结果是 【6】 。
main()
{
struct stu
{ char name[10];
int num;
union
{
float data;
double score[2];
} da;
};
printf("%d\n",sizeof(struct stu));
}
A)26 B)28 C)36 D)32

7、以下程序的运行结果是 【7】 。
main()
{
unsigned char a=0x56,b=0xf0;
printf(“%x\n”,(a&b)<<1);
}
A)50 B)b C) b0 D) a0

8、若有定义int t=0; 则语句while (t=1) if (t++==100) break; 的循环次数是 【8】 。
A)0 B)1 C)100 D)无限次

9、以下用户自定义函数中,存在的语法错误是 【9】 。
sign(int)
{
if(a==0) return 0;
else if (a>0) return 1;
else return –1;
}
A)没有指出返回值类型 B)函数名是C语言的关键字
C)形参变量没有定义 D)函数体中多次出现了return语句

10、若有定义:int a[3]={1,2,3},*p; 则下列语句中不正确的是【10】 。
A) p=a[0] B) p=a C) p=&a[0] D) p=a+1

11、以下程序的运行结果是 【11】 。
main()
{
char s[ ]=”12ab”,*p;
for(p=s;p<s+3;p++)
printf(“%s”,p);
}
A) 12ab2ababb B) 12ab2abab
C) 12ab12ab12ab D) 12ab3

12、以下程序的运行结果是 【12】 。
void fun(int *x)
{
static int a;
*x=a++;
}
main()
{
int i,t=5;
for(i=0;i<5;i++)
fun(&t);
printf(“%d\n”,t);
}
A)4 B) 5 C) 1+2+3+4的和 D) 不确定

13、以下程序的运行结果是 【13】 。
main()
{
enum shape {Rectangle,Circle,Triangle};
enum shape t=Circle;
char *str[3]={“矩形”,”圆形”,”三角形”};
printf(“%s\n”,str[t+1]);
}
A)矩形 B)圆形 C)三角形 D)Circle

14、以下函数的功能对应于 【14】 。
int fun(char *s,char *t)
{
while ( (*s)&&(*t)&&(*t==*s) )
{ t++; s++; }
return(*s-*t);
}
A)strlen(s)+strlen(t) B)strcmp(s,t)
C)strcpy(s,t) D)strcat(s,t)
15、以下程序的运行结果是 【15】 。
#include <stdio.h>
#include <string.h>
fun(char *w,int n)
{
char t,*s1,*s2;
s1=w;
s2=w+n-1;
while (s1<s2)
{
t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{ char *p;
p="12345";
fun(p,strlen(p));
puts(p);
}
A)1711717 B) 15515
C)17117 D) 15115

16、以下程序的运行结果是 【16】 。
main()
{
int a=1,b=1,c=2;
switch(a)
{
case 0: c=b++;
case 1: switch(b)
{
case 1:c++;
case 2:c*=b;break;
default:c+=b;
}
break;
default:c++;
}
printf("%d\n",c);
}
A)3 B)4 C)5 D)不确定

17、以下正确的是 【17】 。
A) int n=1,a[n];
B) int a[ ]={1,2,3};
C) int b[3];
b[3]={1,2,3};
b={1,2,3};
D) int n;
scanf("%d",&n);
int a[n];

【1】 → A
【2】 → C
【3】 → B
【4】 → A
【5】 → C
【6】 → D
【7】 → D
【8】 → C
【9】 → C
【10】 → A
【11】 → B
【12】 → A
【13】 → C
【14】 → B
【15】 → 程序有问题
【16】 → A
【17】 → B
温馨提示:答案为网友推荐,仅供参考