一、选择题(共25题,每题2分)
1.以下叙述正确的是(c)。
A.在C程序中main函数必须位于程序的最前面
B.C程序的每一行中只能写一条语句
C.C语言本身没有输入输出语句
switch case判断字符串D.C程序的执行总是从其第一个函数开始
2.一个C程序的执行是从(a)。
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束
3.以下说法错误的是(d)。
A.实型常量只能用十进制小数和指数两种表示形式
B.0.875、0.0、12.0、875.、.342是十进制小数形式的实型常量
C.1.23e4、1.23E4、1.23E+4、3141.59e-3是指数形式的实型常量
D.实型常量也可以用八进制或十六进制形式表示
4.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围是(c)。
A.0~255 B.0~32767 C.0~65535 D.0~2147483647
5.对于printf函数,在用m.n形式指定宽度时,以下说法错误的是(d):
A.语句printf("\n%5s","abcdefghij");的输出是:abcdefghij
B.语句printf("\n%.5s","abcdefghij");的输出是:abcde
C.语句printf("\n%7.5s","abcdefghij");的输出是:ΔΔabcde
D.语句printf("\n%5s","abcdefghij");的输出是:abcde
6.阅读以下程序,当输入数据的形式为:25,13,10<CR>(注:<CR>表示回车),则正确的输出结果为(d)。
main()
{ int x,y,z;
scanf("%d%d%d" ,&x,&y,&z);
printf("x+y+z=%d\n" ,x+y+z);
}
A. x+y+z=48 B.x+y+z=35 C. x+z=35 D.不确定值
7.由给出的数据输入和输出形式,程序中输入输出语句的正确内容是(b)。
main()
{
int x; float y;
printf(" enter x, y: ")
输入语句
输出语句
}
输入形式 enter x, y: 2 3.4
输出形式x+y=5.40
A.scanf("%d,%f",&x,&y);B.scanf("%d%f",&x,&y);
printf("\nx+y=%4.2f",x+y);printf("\nx+y=%4.2f",x+y);
C.scanf("%d%f",&x,&y); D.scanf(" %d%3.1f",&x,&y);
printf("\nx+y=%6.1f",x+y); printf("\nx+y=%4.2f",x+y);
8.若有定义int x, *p; 则以下正确的赋值表达式是(c)。
A.p=&x B.p=x C.*p=&x D.*p=*x
9.对于数组a[3][5],表示第1行第2列元素地址的表达式是(c)。
A.a[2],a+2,*a+2 B.*(a[1]+2),*(*(a+1)+2),a[1][2]
C.a[1]+2,*(a+1)+2,&a[1][2] D.a[2]+1,*(a+2)
10.以下关于运算符优先顺序的描述中正确的是(c)。
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
11.指出下列程序段所表示的逻辑关系是(若a<b且c=d,则x=10,若a>=b,x=-10)。
if(a<b)
{ if(c= =d) x=10 ; }
else
x=-10;
A. B.
C. D.
12.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是(d)。
A.switch (a+b); B.switch a
{ case 1: y=a+b; break; { case c1: y=a-b; break;
case 0: y=a-b; case c2: x=a*d; break;
break; default: x=a+b;
} }
C.switch (a*a+b*b) D.switch(a-b)
{ case 3: { default: y=a*b; break;
case 1: y=a+b; break; case 3: x=a+b; break;
case 3: y=b-a; break; case 10: case 11: y=a-b; break;
} }
13.执行下列程序,输入为3的输出结果是(a)。
#include ”stdio.h”
main()
{ int k;
scanf(”%d”, &k);
switch(k)
{ case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++); break;
default: printf(”Full!\n”);
}
}
A.3 B.4 C.3 D.4
4 4
14.当执行以下程序段时(a)。
x=-1;
do
{x=x*x;}
while (!x);
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无数次 D.系统将提示有语法错误
15.以下程序的输出结果为(d)。
main( )
{
char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]= '\0';
printf("%s\n",s1);
}
A. side B. country C.sidetry D.countryside
16.判断字符串 s1 是否大于字符串 s2 ,应当使用(d)。
A. if ( s1>s2 ) B.if ( strcmp( s1, s2 ))
C. if ( strcmp( s2, s1 )>0) D.if ( strcmp( s1, s2 )>0)
17.以下正确的说法是( b )。
A.用户若需调用标准库函数,调用前必须重新定义
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C.系统根本不允许用户重新定义标准库函数
D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动去调用
18.以下程序有语法性错误,有关错误原因的正确说法是( 函数说明和函数调用语句之间有矛盾 )。
main()
{ int G=5,k;
void prt_char();
…
k=prt_char(G);
…
}
19.在C语言程序中以下正确的描述是( b )。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
20.阅读程序,说出程序的运行结果 ( b )。
#define ADD(x) x+x
main()
{ int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf("sum=%d",sum);
}
A.sum=9 B.sum=10 C.sum=12 D.sum=18
21.以下定义,能输出字母M的语句是(c)。
struct person{ char name[9]; int age;};
struct person class[10]={“John”,17,“Paul”, 19,“Mary”,18,“Madam”,16};
A.printf(“%c\n”,class[3].name); B.printf(“%c\n”,class[3].name[1]);
C.printf(“%c\n”,class[2].name[0]); D.printf(“%c\n”,class[2].name[1]);
22.以下能正确进行字符串赋值、赋初值的语句组是(b)。
A.chars[5]='a','e','i','o','u'; B.char *s; s="good!";
C.chars[5]="good!"; D.char s[5]; s="good";
23.在宏定义#define PI 3.14159中,宏名PI代替的是一个( d )。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论