C程序设计习题

  • 格式:doc
  • 大小:146.00 KB
  • 文档页数:18

C程序设计题一、单项选择题1. 基础知识1、以下说法中正确的是()A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、下列字符序列中,可用作C标识符的一组字符序列是()。

A) S.b,sum,average,_above B) class,day,lotus_1,2dayC) #md,&12x,month,student_n! D) D56,r_1_2,name,_st_13、以下标识符中,不能作为合法的C用户定义标识符的是()。

A) a3_b3 B) void C) _123 D) IF4、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()A、6.500000B、6C、5.500000D、6.0000005、以下的选择中,正确的赋值语句是()。

A) a=1,b=2 B) j++ C) a=b=5; D) y=int(x)6、在C语言中,能代表逻辑值“真”的是()。

A) True B) 大于0的数C) 非0整数D) 非0的数7、下列程序的输出结果是()。

main(){char c1=97,c2=98;printf("%d %c",c1,c2);}A) 97 98 B) 97 b C) a 98 D) a b8、执行下列语句后变量x和y的值是()。

y=10;x=y++;A) x=10,y=10 B) x=11,y=11 C) x=10,y=11 D) x=11,y=109、设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为()。

A) 12 B) 144 C) 0 D) 13210、已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为“真”的数据是()。

A) 1990 B) 1992 C) 1996 D) 200011、下列程序的输出结果是()。

main(){int a=7,b=5;printf("%d\n",b=b/a);}A) 0 B) 5 C) 1 D) 不确定值12.以下关于运算符优先顺序的描述中正确的是()。

A) 关系运算符<算术运算符<赋值运算符<逻辑运算符B) 逻辑运算符<关系运算符<算术运算符<赋值运算符C) 赋值运算符<逻辑运算符<关系运算符<算术运算符D) 算术运算符<关系运算符<赋值运算符<逻辑运算符13、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d %d %d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);14 有以下程序#include <stdio.h>main(){ char c1,c2;c1=‟A‟+‟8‟-…4‟;c2=‟A‟+‟8‟-…5‟;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是()(A) E,68 (B) D,69 (C) E,D (D)输出无定值15、若有以下类型说明语句:char w; int x; float y; double z;则表达式w*x+z-y 的结果类型是()A、floatB、charC、intD、double16、关于局部变量,下列说法正确的是()。

A、定义该变量的程序文件中的函数都可以访问。

B、定义该变量的函数中的定义处以下的任何语句都可以访问。

C、定义该变量的复合语句的定义处以下的任何语句都可以访问。

D、局部变量可用于函数之间传递数据。

17.若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A) 10<回车> B) 10.0,22.0,33.0<回车>22<回车>33<回车>C) 10.0<回车> D) 10 22<回车>22.0 33.0<回车> 33<回车>2.三大结构(1) 下列程序的运行结果是( )#include <stdio.h>void main(){char c1 = '6', c2 = '0';printf("%c,%c,%d\n",c1,c2,c1-c2);}A.因程序格式不合法,提示出错信息B.6,0,6C.6,0,7D.6,0,5(2) 下列程序的运行结果是( )#include <stdio.h>void main(){double x = 2.0, y;if(x<0.0) y = 0.0;else if(x<10.0) y = 1.0/x;else y = 1.0;printf("%f\n",y);}A.0.000000B.0.250000C.0.500000D.1.000000(3) 下列程序的运行结果是( )#include <stdio.h>void main(){int a = 2, b = -1, c = 2;if( b < 0) c = 0;else c = c + 1;printf("%d\n",c);}A.0B.1C.2D.有语法错误(4) 下列程序的运行结果是( )#include <stdio.h>void main(){int a = 100;if( a > 0) printf("%d\n", a > 100);else printf("%d\n", a <= 100);}A.0B.1C.100D.-1(5) 下列程序的运行结果是( )#include <stdio.h>void main(){int x = 1, a = 0, b = 0;switch(x){case 0: b = b + 1;case 1: a = a + 1;case 2: a = a + 1; b = b + 1;}printf("a=%d,b=%d\n", a, b);}A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=23.函数1.以下正确的函数定义形式是()。

A. double fun(int x,int y)B. double fun(int x; int y)C. double fun(int x, int y);D. double fun(int x,y)2. C语言中,简单变量作为实参时,它和对应形参之间的数据传递方式是()。

A. 地址传递B. 单向值传递C. 由实参传递给形参,再由形参传递给实参D. 由用户指定传递方式3. 在C语言程序中以下正确的描述是()。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和函数的调用均不可以嵌套D. 函数的定义和函数的调用均可以嵌套4. 若数组名作为函数调用的参数,则传递给形参的是()。

A. 数组的首地址B. 数组第一个元素的值C. 数组中全部元素的值D. 数组元素的个数5. 若调用一个函数,且此函数中没有return语句,则正确的说法是()。

A. 没有返回值B.返回若干个系统默认值C. 能返回一个用户所希望的函数值D. 返回一个不确定的值6. 在C语言中,以下说法正确的是()。

A. 实参和与其对应的形参各占用独立的存储单元B. 实参和与其对应的形参共占用一个存储单元C. 只有当实参与其对应的形参同名时才共占用存储单元D. 形参是虚拟的,不占用存储单元7. 以下正确的说法是( )。

A.用户若需要调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义C. 系统不允许用户重新定义标准库函数D. 用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

8. 以下不正确的说法是( )。

A. 实参可以是常量,变量或表达式B. 形参可以是常量,变量或表达式C. 实参可以为任意类型D. 如果形参和实参的类型不一致,以形参类型为准9.C语言规定,函数返回值的类型是由( )决定的。

A. return语句中的表达式类型B. 调用该函数时的主调函数类型C. 调用该函数时由系统临时D. 在定义函数时所指定的函数类型10. 以下正确的函数定义是( )。

A. double fun(int x, int y)B.double fun(int x,y){ z=x+y; return z; } { int z; return z }C. fun (x,y)D. double fun (int x, int y){ int x, y; double z; { double z;z=x+y return z } z=x+y; return z }4.数组1. 在C语言中,引用数组元素时,其数组下标的数据类型允许是()A 整型常量B 整型表达式C 整型常量或整型表达式D 任何类型的表达式2.对以下说明语句的正确理解是()int a[10]={6,7,8,9,10};A 将5个初值依次赋给a[1]至a[5]B 将5个初值依次赋给a[0]至a[4]C 将5个初值依次赋给a[6]至a[10]D 因为数组长度与数组个数不相同,所以此语句不正确3.若有说明:int a[3][4];则对a数组元素的非法引用是()A a[0][2*1]B a[1][3]C a[4-2][0]D a[0][4]4.若:int a[3][4]={0};则下面正确的叙述是()A 只有元素a[0][0]可得到初值0B 此说明语句不正确C 数组a中各元素都可得到初值,但其值不一定为0D 数组a中每个元素均可得到初值05.已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( )A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对6.若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是()。