当前位置:文档之家› C语言习题

C语言习题

练习题 2015-2016(2)重修)判断1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .BAK 的文件。

( )2.在 C 程序中, APH 和 aph 代表不同的变量。

( )3.C语言中数据类型只有整型、实型和字符型。

( )4.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。

()5.Break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。

()6.函数strlen("ASDFG\n")的值是7。

()7.结构体类型只有一种。

()8.构成数组的各个元素可以有不同的数据类型。

( )9.C语言中字符串的结束符是'\0'。

( )10.数组名代表数组的首地址。

( )11.函数的递归调用不过是一个函数直接或间接地调用它自身。

()12.通过return语句,函数可以带回一个或一个以上的返回值。

()13.Char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

()14.若有定义:char *p(char a[10]);则p是函数名。

()15.用fopen("file","r+");打开的文件"file"可以进行修改。

()C概述,数据类型,运算符,表达式,选择结构1.以下叙述中正确的是()。

A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所用数据结构C.程序设计的任务就是确定所用算法D.以上三种说法都不完整2. C语言源程序的基本单位是()。

A.过程B.函数C.子程序D.标识符3. C语言规定,在一个源程序中main函数的位置()。

A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后4.以下叙述中正确的是()。

A.C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数5. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母,数字和下划线中任一种字符6.下面四个选项中,均是合法转义字符的选项是()A.'\'' '\\' '\n'B.'\' '\017' '\"'C.'\018' '\f' 'xab'D.'\\0' '\101' 'xlf'7.下面四个选项中,均是不合法的用户标识符的选项是()A.A P_0 doB.float la0 _AC.b-a goto intD._123 temp INT8.已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10; ,则以下表达式求值时除( )外其结果都可能是不准确的。

A.x=t/cB.t=d/xC.t=d/le5fD.t=x+c9.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为()。

A.3B.3.0C.3.89D.4.010.已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是()。

A.a&&bB.a<=bC.a||b&&cD.!(!c||1)11.有)12.执行了以下程序段后,x、w的值为()。

int x=0,y=1,z=2,w;if(x++) w=x;else if(x++&y>=1) w=y;else if(x++&&z>1) w=z;A.0、1B.1、1C.2、1D.3、213.寺14.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是()。

A.y=x/(10*(n-1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n-1)D.y=x%(10^(n-1))15.下列程序的输出结果是()。

main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A.5B.1C.0D.不确定值16.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A.7B.8C.9D.217.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;A.125,31,1B.125,1,20C.125,31,20D.125.534,2,2018.若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是()。

A.16B.8C.4D.219.若有声明:int k,a,b;unsigned long y=5; Double x=1.23;则以下表达式中正确的是()。

A.x%(-5)B.x=y[6]C.k=(a=l,b=2,&a+&b)D.a+=a-=(b=2)*(a=3)20.若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为()A.4B.16C.32D.5221.已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是()A.132<回车>B.a=1b=3c=2<回车>C.1<回车>3<回车>2<回车>D.a=1<回车>b=3<回车>c=2<回车>22.已知ch是字符型变量,则不正确的赋值语句是()A.ch=5+9;B.ch='\0';C.ch='7'+'9';D.ch='a+b';23.判断char型变量c1是否为大写字母的正确表达式是()A.'A'<=c1<='Z'B.(c1>='A')&(c1<='Z')C.(c1>='A')&&(c1<='Z')D.('A'<=c1) AND ('Z'>=c1)24.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是()A.num%2==1B.!(num%2==0)C.!(num%2)D.num%225.若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是()A.2.500000B.2.7500000C.3.500000D.0.00000026.设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.027.以下正确的if语句是()A.if(n>0) printf("%f",n)printf("%f",-n);B.if(n>0){ n=n+m;printf("%f",n);}else printf("%f",-n);C.if(n>0){ n=n+m;printf("%f",n);};else printf("%f",-n);D.if(n>0){ n=n+m;printf("%f",n) };else printf("%f",-n);28.以下程序运行的结果是()#include<stdio.h>int main(){int x1=3,x2=0,x3=0;if(x1=x2+x3)printf("****");else printf("####");}A.输出:****B.输出:####C.存在语法错误D.无输出结果29.语句while(!y)中的表达式 !y 等价于()A.y==0B.y!=1C.y!=0D.y==130.若有定义语句:int x=10;,则表达式 x-=x+x 的值为()。

A.-20B.-10C.0D.1031.以下程序段中,与语句:k=a>b?(b>c ? 1 : 0) : 0;功能相同的是()。

A.if((a>b) && (b>c)) k=l;else k=0;B.if((a>b)||(b>c))k=l;else k=0;C.if(a<=b)k=0;else if(b<=c)k=1;D.if(a>b) k=l;else if(b>c)k=1;else k=0;32.已知某程序如下:float p=1.5;#define p 2.5main(){printf("%f",p);}则main函数中标识符p代表的操作数是()。

A.float型变量B.double型变量C.float型常量D.double型常量33.逻辑"异或"运算可描述为"a xor b",其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。

相关主题