选择练习题
1、C语言中最简单的数据类型包括( B )。 A、整型,实型,逻辑型
B、整型,实型,字符型
D、整型,实型,逻辑型,字符型
C、整型,字符型,逻辑型
2、C语言中,运算对象必须是整型数的运算符是(A )。 A、%
B、/
C、%和/
D、*
3、为表示关系x<y<z,应使用C语言表达式( A )。 A、(x<y)&&(y<z) B、(x<y)AND(y<z) C、(x<y<z) D、(x<y) &(y<z) 4、C语言程序的基本单位是( C )。
A、程序行 B、语句 C、函数 D、字符 5、C语言的程序一行写不下时,可以( D )。 A、用逗号换行 B、用分号换行 C、用回车符换行 D、在任意一空格处换行 6、下述标识符中,( C )是合法的用户标识符。
标识符由字母,数字和下划线组成 A、A&B B、void C、_student D、ab* 且第一个字符必须为字母或下划线 7、在C语言中,字符型数据在内存中以( B )形式存放。 A、补码 B、ASCII码 C、反码 D、原码
8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B )。 A、auto B、extern C、static D、Register
auto自动变量 9、以下关于switch语句和break语句的描述中,只有(B )是正确的。 register寄存器变量 extern 外部变量 A、在switch语句中必须使用break语句
static静态变量 B、在switch语句中,可以根据需要使用或不使用break语句
C、break语句只能用于switch语句中 D、break语句是switch语句的一部分
10、C语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。 A、地址传递 B、值传递
C、由实参传给形参,并由形参传回给实参 D、由用户指定传递方式 11、下述C语言转义符中( D )是非法的。 A、'\\b' B、'\\037' C、'\\0xf ' D、'\\''
12、为了要计算s=10!(10的阶乘),则以下对s的定义正确的是( D )。 A、int s B、unsigned s C、short s D、long s
13、判断变量ch中的字符是否为大写字母,最简单的正确表达式是( A )。 A、ch>='A'&&ch<='z' B、A<=ch<=Z C、'A'<=ch<='z' D、ch>=A&&ch<=z 14、在C语言中,能表示无符号长整型常数的是(D )。 A、OL B、4962710U C、912374u D、2UL 15、能正确表示C语言的字符常量的是( C )。 A、'\\0x41' B、''A'' C、'\\0' D、''\\0'' 16、C语言中逻辑表达式的值为( A )。
A、0或1 B、非零值或零值 C、true或false D、'true'或'false' 17、C语言提供的基本数据类型关键字是( C )。
A、integer B、FLOAT C、unsigned D、Double 18、若定义语句:int b[ ]={1,2,3,4,5},*P=b;则表达式*p++的值是( A )。 A、1 B、2 C、b[0]的地址 D、b[1]的地址 19、在下列选项中,不正确的表达式是( C )。
A、a>b B、c--, ++b, a+=1 C、a=c+b>n-m=k D、p++ 20、若有以下定义: int a[ ]={1,2,3,4,5,6,7}; char cl='b',c2='2';
则数值不为2的表达式是( D )。
A、a[1] B、'd'-cl C、a['3'-c2] D、c2-0 25、下述对C语言字符数组的描述中错误的是( C )。 A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 D、不可以用关系运算符对字符组中的字符串进行比较 27、以下程序的输出结果是( A )。 main( )
{ int i=010, j=10, k=ox10; printf(''%d,%d,%d\\n'',i,j,k); }
A、8,10,16 B、8,10,10 C、10,10,10 D、10,10,16 28、以下程序的输出结果是( B )。
#include<stdio.h> main( )
{printf(''%d\\n'',NULL);}
A、不确定的值(因变量无定义) B、0 C、-1 D、1 29、以下程序的输出结果是( B )。 main( )
{ char c1='6',c2='0';
printf(''%d,%d,%d\\n'',c1,c2,c1-c2); }
A、因输出格式不合法,输出出错信息 B、54,48,6 C、6.0,7 D、6,0,6 32、下述对C语言字符数组的描述中错误的是( C )。 A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符''=''对字符数组整体赋值 D、不可以用关系运算符对字符组中的字符串进行比较 33、Turbo C中,对于以下程序( A )。 main( ) { int x,y; y=creat(&x); printf(''%d \\n'', y); } creat(int a) {return a++;} A、编译时会给出错信息
B、顺利进行编译、连接、执行;不报任何错误 C、顺利通过编译、连接、但不能执行 D、顺利通过编译,但连接出错 34、设有如下定义: int x=10, y=4,z; 则语句:
printf(''%d\\n'', z=(x%y, x/y)); 的输出结果是( C )。
A、1 B、0 C、2 D、3 35、下述程序段的输出结果是( D )。 main( )
{ int x=10, y=10;
printf(''%d, %d\\n'', x++, ++y); }
A、10,10 B、11,11 C、11,10 D、10,11 36、定义如下变量和数组: int j;
int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( C )。 for(i=0;i<3;i++﹚ printf(''%d'', x[i][2-i]);
A、159 B、147 C、357 D、369
37、若要求在if后一对圆括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( C )。
A、a<>0 B、!a C、a=0 D、a 38、若m,y,z均为int型变量,则执行下面语句后m值是(A )。 m=1;x=2;y=3;z=4; m=(m<x)?m:x; m=(m<y)?m:y; m=(m<z) ?m:z;
A、1 B、2 C、3 D、4
39、若有定义:int a=7;float x=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A、2.500000 B、2.750000 C、3.500000 D、0.000000 40、如下说法不正确的是( C )。 A、c>a+b等效于c>(a+b) B、若a,b均为真,则a||b为真 C、表达式'c'&&'d'的值为0
D、逻辑运算符!比逻辑运算符||的优先级高 41、putchar()函数可以向终端输出一个( B )。
A、整型变量表达式值 B、字符 C、字符串 D、实型变量值 42、表达式18/4*sqrt(4.0)/8值的数据类型为( C )。 A、int B、float C、double D、不确定 43、若已定义a为整型变量: a=-2L;
printf(''%d\\n'',a); 则以上语句( B )。
A、赋值不合法 B、输出值为-2 C、输出为不确定值 D、输出值为2 45、若int类型数据占两个字节,则以下语句的输出为( D )。 int k= -1;
printf(''%d,%u\\n'',k,k);
A、-1,-1 B、-1,32767 C、-1,32768 D、-1,65535 46、已知字母a的ASCII码十进制值为97,则执行以下语句后的输出为( C )。yhg char a='a'; a--;
printf(''%d,%c\\n'',a+'2'-'0',a+'3'-'0'); A、b,c B、a—运算不合法,故有语法错
C、98,c D、格式描述和输出项不匹配,输出无定值 47、下面语句中( B )是C语言的正确赋值语句。
A、a=1,b=2 B、I++; C、a=b=5 D、y=int(x); 48、设有以下说明语句 struct stu { int a; float b; }stutype;
则下面的叙述不正确的是( C )。
A、struct是结构体类型的关键字 B、struct stu是用户定义的结构体类型 C、stutype是用户定义的结构体类型名 D、a和b都是结构体成员名 49、能正确表示:当x的取值范围在[1,10]或[100,110]内为真,否则为假的表达式是( C )。
A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
A中声明变量并初始化时:int a=1,b=5;但是,只赋值时是不能这样写的,应该写成a=1;b=2;C无分号,不是完整的语句,D中x没有定义,如果是 int x=3;int y; y=int(x);这样是对的
C语言期末考试试题及详细答案



