第 1-3 章 C 语言基础知识习题

1、选择题
*
1.
下列字符序列中,不可用作C语言标识符的是()。
A.abc123
B.case
C._123_
D._ok
*
2.
正确的C语言标识符是 ()。
A._buy_2
B.2_buy
C._buy
D.buy
*
3.
请选出可用作C语言用户标识符的一组标识符()。
A.void、define、WORD
B.a3_b3、_123、IF
C.For、-abc、Case
D.2a、DO、sizeof
*
4.
下列符号中,不属于转义字符的是()。
A.\\
B.\0xAA
C.\t
D.\0
*
5.
不属于C语言关键字的是()。
A.int
B.break
C.while
D.character
*
6.
是C语言提供的合法关键字的是()。
A.Float
B.signed
C.integer
D.Char
*
7.
以下不能定义为用户标示符的是()。
A.scanf
B.Void
C._3com_
D.int
*
8.
一个C程序是由()。
A.一个主程序和若干子程序组成
B.一个或多个函数组成
C.若干过程组成
D.若干子程序组成
*
9.
C语言程序的基本单位是()。
A.程序行
B.语句
C.函数
D.字符
*
10.
下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
C.主函数只能调用用户函数或系统函数,用户函数可以相互调用
D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
*
11.
以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main( )函数中定义
C.C语言程序总是从main( )函数开始执行
D.C语言程序中的main( )函数必须放在程序的开始部分
*
12.
C编译程序是()。
A.C程序的机器语言版本
B.一组机器语言指令
C.将C源程序编译成目标程序
D.由制造厂家提供的一套应用软件
*
13.
以下选项中,合法的用户标识符是()。
A.long
B._2abc
C.3dmax
D.A.dat
*
14.
以下选项中,合法的实型常数是()。
A.5E2.0
B.E-3
C.2E0
D.1.3E
*
15.
已知大写字母A的ASCII码值是65, 小写字母a的ASCII码是97,则用八进制表示的字符常量’\101’是()。
A.字符A
B.字符a
C.字符c
D.非法的常量
*
16.
以下选项中, 合法转义字符的选项是()。
A.’\\’
B.’\018’
C.’xab’
D.’\abc’
*
17.
以下选项中,正确的字符常量是()。
A.”F”
B.’\\’’
C.’W’
D.’’
*
18.
以下选项中可作为C语言合法整数的是()
A.10110B
B.0386
C.0Xffa
D.x2a2
*
19.
下列变量定义中合法的是()
A.short _a=1e-1;
B.double b=1+5e2.5;
C.long do=0xfdaL;
D.float 2_and=1-e-3;
*
20.
与数学式子对应的C语言表达式是()。
A.9*x^n/(2*x-1)
B.9*x**n/(2*x-1)
C.9*pow(x,n)/(2*x-1)
D.9*pow(n,x)/(2*x-1)
*
21.
若有代数式[嵌入对象],则不正确的C语言表达式是()。
A.a/c/d*b*3
B.3*a*b/c/d
C.3*a*b/c*d
D.a*b/d/c*3
*
22.
已知各变量的类型说明如下:
int m=8,n, a, b;
unsigned long w=10;
double x=3.14, y=0.12;
则以下符合 C 语言语法的表达式是( )。
A. a+=a-=(b=2)*(a=8)
B. n=n*3=18
C. x%3
D. float(m) = y;
*
23.
以下符合C语言语法的赋值表达式是()。
A.a=9+b+c=d+9
B.a=(9+b, c=d+9)
C.a=9+b, b++, c+9
D.a=9+b++=c+9
*
24.
已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为()。
A.’D’
B.68
C.不确定的值
D.’C’
*
25.
在C语言中,要求运算数必须是整型的运算符是()。
A./
B.++
C.*=
D.%
*
26.
若有说明语句:char s=’\72’;则变量s()。
A.包含一个字符
B.包含两个字符
C.包含三个字符
D.说明不合法,s的值不确定
*
27.
若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x+y)%2/4的值是()。
A. 2.500000
B. 2.750000
C. 3.500000
D. 0.000000
*
28.
在C语言中,char型数据在内存中的存储形式是()。
A.补码
B.反码
C.原码
D.ASCII码
*
29.
设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。
A. x=(x*100+0.5)/100.0
B. m=x*100+0.5, x=m/100.0
C. x=x*100+0.5/100.0
D. x=(x/100+0.5)*100.0
*
30.
表达式13/3*sqrt/8的数据类型是()。
A.int
B.float
C.double
D.不确定
*
31.
设以下变量均为int类型,则值不等于7的表达式是()。
A.(m=n=6, m+n, m+1)
B.(m=n=6, m+n, n+1)
C.(m=6, m+1, n=6, m+n)
D.(m=6, m+1, n=m, n+1)
*
32.
假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是()。
A.7
B.8
C.6
D.2
*
33.
已知s是字符型变量,下面不正确的赋值语句是()。
A.s=’\012’;
B.s= ’u+v’;
C.s=’1’+’2’;
D.s=1+2;
*
34.
已知s是字符型变量,下面正确的赋值语句是()。
A.s=’abc’;
B.s=’\08’;
C.s=’\xde’;
D.s=”\”;
*
35.
设x、y均为float型变量,则不正确的赋值语句是()。
A.++x ;
B.x*=y-2;
C.y=(x%3)/10;
D.x=y=0;
*
36.
下列语句中符合C语言的赋值语句是()。
A.a=7+b+c=a+7;
B.a=7+b++=a+7;
C.a=7+b,b++,a+7
D.a=7+b,c=a+7;
*
37.
putchar函数可以向终端输出一个()。
A.整型变量表达式值。
B.字符串
C.实型变量值。
D.字符或字符型变量值。
*
38.
以下程序段的输出结果是()。
int a=12345; printf(”%2d\n”, a);
A.12
B.34
C.12345
D.提示出错、无结果
*
39.
有如下程序段:
int x1,x2;
char y1,y2;
scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);
若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格)
A. 10A└┘20B
B. 10└┘A20B
C. 10 └┘A└┘20└┘ B
D. 10A20└┘B
*
40.
若变量已正确说明为float类型, 要通过语句scanf(”%f%f%f”, &a, &b, &c);给 a 赋予10.0, b 赋予 22.0, c 赋予 33.0, 不正确的输入形式为( )。
A.
10<回车> 
22<回车>
33
B.
10.0,22.0,33.0<回车>
C.
10.0<回车>
22.0 33.0<回车>
D.
10 22<回车>
33<回车>
*
41.
有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:└┘代表空格)
int x1,x2;
char y1,y2;
scanf(”%d%d”,&x1,&x2);
scanf(”%c%c”, &y1,&y2);
A.1020AB
B.10└┘20└┘ABC
C.10└┘20
D.10└┘20AB AB
*
42.
有如下程序段,对应正确的数据输入是()。
float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);
A、
2.04<回车>
5.67<回车>
B、
2.04,5.67<回车>
C、
A=2.04,B=5.67<回车>
D、
2.055.67<回车>
*
43.
以下说法正确的是()。
A.输入项可以为一个实型常量,如scanf(”%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%”,&f);
D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);
*
44.
以下程序的执行结果是:()。
#include ”stdio.h”
main(){
    int x=2,y=3;
    printf(”x=%%d,y=%%d\n”,x,y);
}
A.x=%2,y=%3
B.x=%%d,y=%%d
C.x=2,y=3
D.x=%d,y=%d
*
45.
以下程序的输出结果是( )。 (注: └┘代表空格)
#include ”stdio.h”
main(){
    printf(”\nstring1=%15s*”, ”programming”);
    printf(”\nstring2=%-5s*”, ”boy”);
    printf(”string3=%2s*”, ”girl”);
}
A、
string1=programming└┘└┘└┘└┘*
string2=boy*
string3=gi*
B、
string1=└┘└┘└┘└┘programming*
string2=boy└┘└┘*string3=gi*
C、
string1=programming└┘└┘└┘└┘*
string2=└┘└┘boy*string3=girl*
D、
string1=└┘└┘└┘└┘programming*
string2=boy└┘└┘*string3=girl*
*
46.
根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。
#include ”stdio.h”
main(){
    int a;
    float b;
    输入语句
    输出语句
}
输入形式: 1└┘2.3<回车> (注: └┘代表空格)
输出形式: a+b=3.300
A、
scanf(”%d%f”,&a,&b);
printf(”\na+b=%5.3f”,a+b);
B、
scanf(”%d%3.1f”,&a,&b);
printf(”\na+b=%f”,a+b);
C、
scanf(”%d,%f”,&a,&b);
printf(”\na+b=%5.3f”,a+b)
D、
scanf(”%d%f”,&a,&b);
printf(”\na+b=%f”,a+b);
*
47.
阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为()。
#include <stdio.h>
int main(){
    int a,b;
    scanf(”%d%d”, &a,&b);
    printf(”a+b=%d\n”,a+b);
    return 0;
}
A.a+b=46
B.有语法错误
C.a+b=12
D.不确定值
*
48.
若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:└┘代表空格) 
1└┘2<回车>
U└┘V└┘W<回车>
则能给 x 赋给整数 1,给 y 赋给整数 2,给 s1 赋给字符 U,给 s2 赋给字符 V,给 s3 赋
给字符 W 的正确程序段是( )。
A. scanf(”x=%dy=%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();
B.scanf(”%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();
C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);
D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);
问卷星提供技术支持
举报