【期末高分题集】[华中师范大学]《C语言程序设计B(华师)》考核必备47

奥鹏期末考核

31462–《C语言程序设计B(华师)》2022年华中师范大学期末复习题集

单选题:
(1)已知x=43,ch=‘A’,y=0;则表达式(x=y‘B’&&!y)的值是
A.0
B.语法错
C.1
D.“假”
答案问询微信:424329

(2)以下能对二维数组a进行正确初始化的语句是
A.int a[2][]={{1,0,1},{5,2,3}};
B.int a[][3]={{1,2,3},{4,5,6}};
C.int a[2][4]={{1,2,3},{4,5},{6}};
D.int a[][3]={{1,0,1},{},{1,1}};
答案问询微信:424329

(3)在下列表达式选项中,( )是正确的。
A.a++++b
B.+a++
C.a++b
D.a+++b
答案问询微信:424329

(4)以下不能对二维数组a进行正确初始化的语句是
A.int a[2][3]={0};
B.int a[][3]={{1,2},{0}};
C.int a[2][3]={{1,2},{3,4},{5,6}};
D.int a[][3]={1,2,3,4,5,6};
答案问询微信:424329

(5)下列四组选项中,均不是C语言关键字的选项是
A.define IF type
B.getc char printf
C.include scanf case
D.while go pow
答案问询微信:424329

(6)若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为    。(假设a[0][0]位于数组的第一个位置上。)
A.i*m+j
B.j*m+i
C.i*m+j-1
D.i*m+j+1
答案问询微信:424329

(7)假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是
A.7
B.8
C.6
D.2
答案问询微信:424329

(8)以下说法正确的是
A.输入项可以为一实型常量,如scanf(“%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,
D.当输入数据时,必须指明变量的地址,如scanf(“%f”,
答案问询微信:424329

(9)在一个C程序中,main函数的位置( )。
A.必须在程序的开头
B.可以在程序的任何地方
C.必须在其它函数中间
D.必须在程序的后面
答案问询微信:424329

(10)将两个字符串连接起来组成一个字符串时,选用( )函数。
A.strlen( )
B.strcpy( )
C.strcat( )
D.strcmp( )
答案问询微信:424329

(11)已知:int a,x;,则正确的赋值语句是( )。
A.a=(a[1]+a[2])/2;
B.a*=*a+1;
C.a=(x=1,x++,x+2);
D.a="good";
答案问询微信:424329

(12)下列运算符中优先级最高的是
A.
B.+
C.&&
D.!=
答案问询微信:424329

(13)若有说明:int a[3][4];则对a数组元素的正确引用是
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
答案问询微信:424329

(14)为求出s=10!的值,则变量s的类型应当为( )。
A.int
B.unsigned
C.long
D.其他选项都选
答案问询微信:424329

(15)若二维数组a有m列,则在a[i][j]前的元素个数为
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
答案问询微信:424329

(16)有输入语句:scanf(“a=%d,b=%d,c=%d”,为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是
A.A) 132回车
B.1,3,2回车
C.a=1 b=3 c=2回车
D.a=1,b=3,c=2回车
答案问询微信:424329

(17)以下不正确的C语言标识符是( )。
A.AB1
B._ab3
C.4ab
D.a2_b
答案问询微信:424329

(18)语句while(!E);中的表达式!E等价于
A.E==0
B.E!=1
C.E!=0
D.E==1
答案问询微信:424329

(19)以下叙述不正确的是
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
答案问询微信:424329

(20)C语言的编译系统对宏命令的处理是( )。
A.在对源程序中的其它语句编译之前进行的
B.在程序运行时进行的
C.和C程序中的其它语句同时进行的
D.在程序连接时进行的
答案问询微信:424329

(21)对以下说明语句的正确理解是______。
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.因为数组长度与初值的个数不相同,所以此语句不正确
答案问询微信:424329

(22)C语言中,长整型long数据在内存中的存储形式是( )。
A.ASCII
B.原码
C.反码
D.补码
答案问询微信:424329

(23)若x、i、j和k都是int型变量,则执行下面表达式后x的值为    。
x=(i=4,j=16,k=32)
A.4
B.16
C.32
D.52
答案问询微信:424329

(24)C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中任一种字符
答案问询微信:424329

(25)C语言中基本数据类型包括( )。
A.整型、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、实型
答案问询微信:424329

(26)下面四个选项中,均是不合法的整型常量的选项是
A.–0f1 -0xffff 0011
B.-0Xcdf 017 12,456
C.-018 999 5e2
D.-0x48eg -068 03f
答案问询微信:424329

(27)若有说明:int a[][4]={0,0};则下面不正确的叙述是
A.数组a的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
答案问询微信:424329

(28)以下不是无限循环的语句为
A.for(y=0,x=1;x++y;x=i++) i=x
B.for(;;x++=i)
C.while(1) { x++; }
D.for(i=10;;i–) sum+=i;
答案问询微信:424329

(29)下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A.016 0x8f 018
B.0abc 017 0xa
C.010 -0x11 0x16
D.0a12 7ff -123
答案问询微信:424329

(30)一个C语言程序是由
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
答案问询微信:424329

(31)在C语言中,数字029是一个( )。
A.八进制数
B.十六进制数
C.十进制数
D.非法数
答案问询微信:424329

(32)整型变量i定义后赋初值的结果是( )。Int i=2.8*6;
A.12
B.16
C.17
D.18
答案问询微信:424329

(33)下面四个选项中,均是合法浮点数的选项是
A.+1e+1 5e-9.4 03e2
B.-.60 12e-4 -8e5
C.123e 1.2e-.4 +2e-1
D.-e3 .234 5.e-0
答案问询微信:424329

(34)以下能对一维数组a进行正确初始化的语句是
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*1};
答案问询微信:424329

(35)判断char型变量ch是否为大写字母的正确表达式是
A.‘A’=ch=‘Z’
B.(ch=‘A’)=‘Z’)
C.(ch=‘A’)=‘Z’)
D.(‘A’=ch)AND(‘Z’=ch)
答案问询微信:424329

(36)设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是
A.‘x’&&‘y’
B.x=y
C.x||y+z&&y-z
D.!((xy)&&!z||1)
答案问询微信:424329

(37)以下不正确的定义语句是
A.double x[5]={2.0,4.0,6.0,8.0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[]={‘1’,‘2’,‘3’,‘4’,‘5’};
D.char c2[]={‘x10’,‘xa’,‘x8’};
答案问询微信:424329

(38)下面四个选项中,均是正确的八进制数或十六进制数的选项是
A.-10 0x8f -011
B.0abc -017 0xc
C.0010 -0x11 0xf1
D.0a12 -0x123 -0xa
答案问询微信:424329

(39)已知:int *p,a;,则语句“p=”中的运算符“&”的含义是( )。
A.位与运算
B.逻辑与运算
C.取指针内部
D.取变量地址
答案问询微信:424329

(40)下面四个选项中,均是正确的数值常量或字符常量的选项是
A.0.0 0f 8.9e ‘&’
B.“a” 3.9E-2.5 1e1 ‘”’
C.‘3’ 011 0xFF00 0a
D.+011 0xabcd 2e2 50.
答案问询微信:424329

(41)以下对二维数组a的正确说明是
A.int a[3][];
B.float a(3,4);
C.double a[1][4];
D.float a(3)(4);
答案问询微信:424329

(42)下面四个选项中,均是合法整型常量的选项是
A.160 -0xffff 011
B.-0xcdf 01a 0xe
C.-01 986,012 0668
D.-0x48a 2e5 0x
答案问询微信:424329

(43)执行语句for(i=1;i++4;);后变量i的值是
A.3
B.4
C.5
D.不定
答案问询微信:424329

(44)若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是
A.2
B.3
C.4
D.无确定值
答案问询微信:424329

(45)以下能正确地定义整型变量a,b和c并为其赋初值5的语句是
A.int a=b=c=5;
B.int a,b,c=5;
C.a=5,b=5,c=5;
D.a=b=c=5
答案问询微信:424329

(46)若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是
A.A%2==1
B.!(A%2==0)
C.!(A%2)
D.A%2
答案问询微信:424329

(47)在位运算中,操作数每右移一位,其结果相当于( )。
A.操作数乘以2
B.操作数除以2
C.操作数乘以4
D.操作数除以4
答案问询微信:424329

(48)能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是
A.(x=1)=10)=200)=210)
B.(x=1)||(x=10)||(x=200)||(x=210)
C.(x=1)=10)||(x=200)=210)
D.(x=1)||(x=10)=200)||(x=210)
答案问询微信:424329

(49)在C语言中,每个语句和数据定义是用()结束。
A.句号
B.逗号
C.分号
D.括号
答案问询微信:424329

(50)下列字符串是标识符的是( )。
A._HJ
B.9_student
C.long
D.LINE 1
答案问询微信:424329

(51)在C的if语句中,可用作判断的表达式是( ) 。
A.关系表达式
B.逻辑表达式
C.算术表达式
D.任意表达式
答案问询微信:424329

(52)在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型常量
B.整型常量或整型表达式
C.整型表达式
D.任何类型的表达式
答案问询微信:424329

(53)凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
答案问询微信:424329

(54)设有下面的程序段:char s[ ]=“china”; char *p; p=s; 则下列叙述正确的是( )。
A.s 和 p 完全相同
B.数组s中的内容和指针变量 p 中的内容相等
C.s 数组长度和 p 所指向的字符串长度相等
D.*p 与 s[0]相等
答案问询微信:424329

(55)C 语言中,运算对象必须是整型数的运算符是( )。
A.%
B.
C.% 和
D.**
答案问询微信:424329

(56)为了表示关系 x=y=z,应使用 C 语言表达式( ) 。
A.(x=y)=z)
B.(x=y)AND(y=z)
C.(x=y=z)
D.(x=y)=z)
答案问询微信:424329

(57)定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面执行语句的结果为( ) 。
for(i=0;i3;i++)
printf(“%3d”,x[i][2-i]);
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
答案问询微信:424329

(58)以下对一维整型数组 a 的正确说明是( )。
A.int a(10)
B.int n; scanf(“%d”, int a[n];
C.int n=10,a[n]
D.define SIZE 10 int a[SIZE];
答案问询微信:424329

(59)当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为( )。
if ( a b )
if ( c d ) x = 1 ;
else
if ( a c )
if ( b d ) x =2 ;
else x = 3 ;
else x = 6 ;
else x = 7 ;
A.1
B.2
C.3
D.6
答案问询微信:424329

(60)C 语言中调用 printf 进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同,如果格式说明的个数小于输出项的个数,多余的输出项将 ( )。
A.不予输出
B.输出空格
C.照样输出
D.输出不定值或 0
答案问询微信:424329

(61)假定所有变量均已正确说明,下列程序段运行后 x 的值是( )。
a=b=c=0;x=35;
if(!a) x=-1;
else if(b);
if(c) x=3;
else x=4;
A.34
B.4
C.35
D.3
答案问询微信:424329

(62)在 do-while 循环中,循环由 do 开始,用 while 结束,必须注意的是:在 while 表达式后面的( )不能丢,它表示 do-while 语句的结束。
A.0
B.1
C.;
D.,
答案问询微信:424329

(63)下面几个字符串处理表达式中能用来把字符串 str2 复制到字符串 str1 后的是( )。
A.strcat(str1,str2
B..strcat(str2,str1);
C.strcpy(str1,str2)
D.strcmp(str1,str2);
答案问询微信:424329

(64)下列说法正确的是( )。
A.在 C 语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在 C 语言中,数组元素的个数可以不确定,允许随机变动
C.在 C 语言中,数组元素的数据类型可以不一致
D..在 C 语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数
答案问询微信:424329

(65)如果在一个函数中的复合语句中定义了一个变量,则该变量( ) 。
A.只在该复合语句中有效
B.在该函数中有效
C.在本程序范围内有效
D.为非法变量
答案问询微信:424329

(66)若用 fopen( )函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是( )。
A.“ab+”
B.“wb+”
C.“rb+”
D.“ab”
答案问询微信:424329

多选题:
(1)若有说明:int?a[][4]={0,0};,则下面正确的叙述有:
A.数组a的每个元素都可得到初值0;
B.二维数组a的第一维大小为1;
C.因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1;
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值
答案问询微信:424329

(2)定义了一维int型数组a[10]后,下面正确的引用有:
A.a[0]=1;
B.a[10]=2;
C.a[0]=5*2;
D.a[1]=a[2]*a[0];
答案问询微信:424329

(3)下列语句段会陷入死循环的是
A.n=100; while(n) n=n%100+1;
B.s=33; while(s++%2+s%2)?s++;
C.for(;;);
D.for(i=1;;)?if(–i)break;
答案问询微信:424329

(4)局部变量的存储类别包括哪些?
A.自动变量
B.静态局部变量
C.外部变量
D.寄存器变量
答案问询微信:424329

(5)假设int?x,y,z;若从键盘给x、y、z输入数据,下列不正确的输入语句是:
A.input?x、y、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
答案问询微信:424329

(6)关于条件运算符的叙述正确的是
A.条件运算符的优先级别比关系运算符和算术运算符都低;
B.条件运算符是C语言中惟一的一个三目运算符;
C.条件运算符的结合方向是“自右至左” ;
D.条件运算符可以替代任何if语句的功能
答案问询微信:424329

(7)表示一个算法的方式包括哪些?
A.用自然语言表示
B.用流程图表示
C.用N-S流程图表示
D.用伪代码表示
答案问询微信:424329

(8)一个数据类型为void的函数在被调用后,下列错误的描述有
A.函数没有返回值;
B.函数可以返回一个系统默认值;
C.函数返回值由用户临时决定;
D.函数可以返回一个不确定的值
答案问询微信:424329

(9)按函数在程序中出现的位置来分,可以有以下哪些函数调用方式?
A.函数语句
B.函数表达式
C.函数参数
D.函数值
答案问询微信:424329

(10)以下关于函数的叙述正确的有
A.一个C语言程序有且仅有一个main函数;
B.C语言程序中,main函数是没有参数的;
C.一个函数通过其他函数间接的调用了自身,这种情况也是一种递归调用;
D.main函数是由系统调用的
答案问询微信:424329

(11)下列描述正确的是:
A.putchar函数的作用是向屏幕输出一个字符
B.putchar函数能在屏幕上输出控制字符
C.putchar(c)函数中,c只能是字符型变量,不能是整型变量
D.putchar函数能在屏幕上输出转义字符
答案问询微信:424329

(12)以下关于二维数组初始化的描述正确的是?
A.分行给二维数组赋初值
B.可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值
C.可以对部分元素赋初值
D.如果对全部元素都赋值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
答案问询微信:424329

(13)以下所列语句中,不合法的语句是:
A.a=1,b=2
B.++a;
C.a=a+1=5;
D.y=(int)a
答案问询微信:424329

(14)以下4条语句,没有语法错误的是
A.if(ab)?m=a;
B.if(a);
C.if((a=b)=0)?m=a;
D.if((a=b;)=0)?m=a;
答案问询微信:424329

(15)以下关于数组的描述中,错误的有:
A.引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式;
B.可以通过数组名来整体引用一个数组;
C.在程序中可以对数值数组中的数据进行整体使用;
D.若有说明:int?a[10];,则可以a[10]引用数组a的第9个元素
答案问询微信:424329

(16)以下哪些函数可以实现字符的输入?
A.putchar函数
B.getchar函数
C.printf函数
D.scanf函数
答案问询微信:424329

(17)若a为整型变量,则下列表达式的值为0的是
A.a%a
B.a!=a
C.3/4
D.3&&0
答案问询微信:424329

(18)以下哪些函数属于字符串处理函数?
A.puts函数
B.gets函数
C.strcat函数
D.strcpy函数
答案问询微信:424329

(19)printf函数中,关于格式字符描述正确的是:
A.格式字符o表示以八进制无符号形式输出整数
B.格式字符u 表示以无符号十进制形式输出整数
C.格式字符x 表示以无符号十六进制形式输出整数
D.格式字符f 表示以实数形式输出单、双精度数
答案问询微信:424329

(20)若有?char?ch;,下面可以对变量c正确赋值的语句是:
A.ch?=‘A’;
B.getchar(ch);
C.ch?=?getchar();
D.scanf(“%c”,
答案问询微信:424329

判断题:
(1)在C语言中,不同类型的数据不可以在一起进行算术运算。
答案问询微信:424329

(2)do……whi奥鹏期末考核le循环语句至少要执行一次循环体。
答案问询微信:424329

(3)在C程序中,函数调用可以作为函数的形参。
答案问询微信:424329

(4)在if…else语句中,else总是和它上面最近且未曾配对的if配对。
答案问询微信:424329

(5)代数式(x-y)2(a+b)对应的C语言表达式为(x-y)*(x-y)*(a+b)。
答案问询微信:424329

(6)设i,j,k均为int型变量,则执行完for(i=0,j=10;i=j;i++,j–) k=i+j;语句后,k的值为11。
答案问询微信:424329

(7)在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。( )
答案问询微信:424329

(8)return语句可以带有表达式也可以不带。
答案问询微信:424329

(9)函数的参数为int类型时,形参与实参结合的传递为值传递。
答案问询微信:424329

(10)变量分为全局和局部两种,自动局部变量没有赋初值时,其值是不确定的。
答案问询微信:424329

(11)C程序有且仅有一个main()函数。
答案问询微信:424329

(12)如果被定义函数的返回值类型是整型或字符型,使用前可以不必进行说明。
答案问询微信:424329

(13)对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。
答案问询微信:424329

(14)若采用十进制数的表示方法,则078是64。
答案问询微信:424329

(15)float类型变量占用计算机空间的大小为8 Byte。
答案问询微信:424329

(16)若a=1,b=2,c=3,则执行表达式(ab)&& (c++)后,c的值为4。
答案问询微信:424329

(17)C语言中不区分大小写英文字母。
答案问询微信:424329

(18)函数fread的返回值为所读入数据的个数或-1。
答案问询微信:424329

(19)C语言程序中,任何英语单词均可以作标识符。
答案问询微信:424329

(20)C语言中,任意两个函数间不能嵌套定义,但可以互相调用。
答案问询微信:424329

(21)for(int x=0,y=0;!x=5;y++)语句执行循环7次。
答案问询微信:424329

(22)假定一个一维数组的定义为“char *a[8];”,则该数组所占存储空间的字节数为16。
答案问询微信:424329

(23)“!”的优先级可以比“/”高。
答案问询微信:424329

(24)C语言在判断一个量是否为真时,以非0值代表“真”,以0值代表“假”。
答案问询微信:424329

(25)假定a是一个二维数组,则a[i][j]的指针访问方式为*(a[i]+j)或*(*(a+i)+j)。
答案问询微信:424329

(26)实际上,可以用顺序、分支、循环三种结构构造任何算法。
答案问询微信:424329

(27)C语言与其他高级语言一样,对于所有的同级运算符均遵循左结合原则。
答案问询微信:424329

(28)定义一个具有10个元素的整型数组,应当使用语句int a[10]; 。
答案问询微信:424329

(29)在C语言中,任何一个表达式的最后加上一个分号就构成一个合法的语句。
答案问询微信:424329

(30)两个char 型数据相加,其结果为char型。
答案问询微信:424329

(31)C 语言规定: 在一个源程序中, main 函数的位置必须在最开始。( )
答案问询微信:424329

(32)浮点型常量的指数表示中,e 是可以省略的。 ( )
答案问询微信:424329

(33)在 C 语言的 if 语句中,用作条件判断的表达式只能是关系和逻辑表达式。( )
答案问询微信:424329

(34)数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。( )
答案问询微信:424329

(35)C 语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。( )
答案问询微信:424329

(36)可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。( )
答案问询微信:424329

程序题:
(36)可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。( )
答案问询微信:424329

(36)可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。( )
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网