1.C语言属于( )。
A. 机器语言
B. 汇编语言
C. 高级语言
D. 低级语言
正确答案: C
2.C语言的源程序通常的扩展名是( )。
A. .cpp
B. .c
C. .obj
D. .exe
正确答案: B
3.构成C语言源程序的基本单位是( )。
A. 过程
B. 函数
C. 子程序
D. 命令
正确答案: B
4.下面四组选项中,均是C语言关键字的选项是( )
A. auto enum include
B. switch typedef continue
C. signed union scanf
D. if struct type
正确答案: B
5.下列属于C语言中合法标识符的是( )
A. ex-1
B. _cook
C. 951a
D. if
正确答案: B
6.结构化程序设计的三种基本结构是__________________
正确答案:
(1) 顺序结构
(2) 选择结构;分支结构
(3) 循环结构
7.C语言的注释分为________________和________________。
正确答案:
(1) 块注释;/* */
(2) 行注释;//
8.C语言的标识符分为____ ____ ____。
正确答案:
(1) 关键字
(2) 预定义标识符
(3) 用户标识符;自定义标识符;用户自定义标识符
9.C程序从编写到运行要经过四个基本过程:
正确答案:
(1) 编辑
(2) 编译
(3) 链接
(4) 执行;运行
10.C语言允许直接访问内存地址。
A. 对
B. 错
正确答案: A
11.以下选项中不合法的实型常量是( )
A. -0.1
B. 0.123
C. 0.5
D. E3
正确答案: D
在C语言中,常量可以被分为多种类型。首先,我们有三种基本的数值型常量:整型常量、实型常量和字符型常量。
整型常量可以是双长整型、长整型、短整型、符号整型和无符号整型。例如,十进制整型常量如123,八进制整型常量以数字0开头,如012表示的是十进制的10,十六进制整型常量以 0x或 0X开头,如0x1F表示的是十进制的31。
实型常量又称实数或者浮点数,通常用小数形式或者指数形式表示,例如0.123、123.456和0.0都是合法的实型常量。其中,小数形式由数字和小数点组成,而指数形式则以”e”或”E”后跟一个整数来表示以10为底的幂。
字符型常量由单个字符组成,如:‘a’,’c’,’S’等,要用单引号包裹。字符串常量是由多个字符组成的,如:“HELLOWORLD”,它与字符常量不同,要用双引号包裹。
12.若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是( )
A. 2
B. 2.5
C. 2.0
D. 1
正确答案: C
对于表达式 x=1, y=x+3/2,首先执行的是 x=1,然后将 x 的值赋给 y。在这个过程中,需要注意 3/2 的计算顺序和类型转换。
由于 x 和 y 都是 double 型变量,表达式 3/2 会先进行整数除法,结果为 1(因为 3 和 2 都是整数,所以结果也是整数),然后将 1 转换为 double 类型,得到 1.0。接着,将这个 double 类型的结果与 x 的值进行加法运算。
13.经过下述赋值后,变量x的数据类型是( )。
float x=21.0;
int y;
y=(int)x;
A. float
B. double
C. int
D. char
正确答案: A:float;
14.执行以下程序后,输出结果为
#include<stdio.h>
int main()
{
int x;
float y;
y=3.6;
x=(int)y+10;
printf("x=%d,y=%f",x,y);
return 0;
}
A.x=13,y=3.600000
B.x=13.5,y=3.60000
C.x=13,y=3
D. x=13,y=3.6
正确答案: A
在C语言中,浮点数有两种表示方式:十进制数形式和指数形式。十进制数形式由数码0~9和小数点组成,例如10.6。而指数形式由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成,其一般形式为a E n (a为十进制数,n为十进制整数),其值为 a*10^n。
对于选项B的”12E.2″,这是一个不符合规范的表示方法。在指数形式中,阶码应该是一个整数,因此”E.2″是错误的。正确的表达应为 “12E2” 或者 “12e2”。
15.内存通常以( )位一组,称为一个 ( ) 。
正确答案:
(1) 8
(2) 字节
16.一些特殊字符无法从键盘输入,因此,C语言提供了一种特殊的表示法——转义序列。转义序列共有两种:字符转义序列和() 。
正确答案:
(1) 数字转义字符
17.程序执行时,所有数据都存储在(),要想永久保存,就需要把数据以文件形式存储在()。
正确答案:
(1) 内存
(2) 外存;硬盘
18.在C 语言中,实型变量分为两种类型,它们() 和 ()。
(1) 单精度浮点数
(2) 双精度浮点数
19.执行语句“printf(“%x”,-1);”屏幕显示-ffff。
A. 对
B. 错
正确答案: B
答案解析:屏幕输出:ffffffff
20.以下程序的运行结果是( )
#include <stdio.h>
int main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
}
A. 6,1
B. 2,1
C. 6,0
D. 2,0
正确答案: B
在二进制数字的与(AND)运算中,只有在两个对应位都为 1 的情况下,结果位才为 1,否则结果位为 0。下面是与运算的规则:
0 AND 0= 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
21.阅读以下程序可以推出( )
#include <stdio.h>
int main()
{ int a=5 , b=0 , c=0;
if (a=b+c) printf("* * *n");
else printf("$ $ $n");
return 0;
}
A. 有语法错误不能通过编译
B. 可以通过编译但不能直接通过连接
C. 输出 * * *
D. 输出 $ $ $
正确答案: D
c语言中0为假,非0值为真
22.以下程序的运行结果是( )
#include <stdio.h>
int main(){
int x=5;
if(x=2)
printf("OK");
else if(x<2)
printf("%dn",x);
return 0;
}
A. OK
B. Quit
C. 1
D. 7
正确答案: A
在这段代码中,条件语句中的 if(x=2) 包含了赋值操作符 =,而不是相等性比较的操作符 ==。在 C 语言中,条件表达式的结果是基于所检查的条件是否为 0 或非零值来决定的。
23.为了避免在嵌套的条件语句中if-else 中产生二义性,c 语言规定:else 子句总是与( )相配对。
A. 缩排位置相同的尚未配对的if
B. 其之前最近的尚未配对的if
C. 其之后最近的尚未配对的if
D. 同一行上的尚未配对的if
正确答案: B
24.以下关于switch 语句和break 描述中, ( ) 是正确的。
A. 在switch 语句中,可以根据需要使用或不使用break 语句
B. switch 语句中必须用break 语句
C. break 语句只能用于switch 语句
D. break 语句是switch 语句必须的一部分
正确答案: A
25.设 int x=5,y=9,z=15, 表达式(x+y)/z||(x<y)&&(x%y) && (!X)
的值为( )。
正确答案: A
26.若变量c为char类型,能正确判断出c为大写字母的表达式是( ) 。
A. ‘a’<=c<=‘z’
B. (c>=‘a’)||(c<=‘z’)
C. (c>=‘A’)&&(c<=‘Z’)
D. (‘a’<=c)and(‘z’>=c)
正确答案: C
27.设int a=5,b=9,c=15, 表达式(a+b)/c||(a<b)&&(a%b) 的值为( )。
A. 0
B. 2
C. 1
D. -1
正确答案: C
28.C语言中,关系表达式和逻辑表达式的值是( )。
A. 0
B. 0或1
C. 1
D. T’或’F’
正确答案: B
关系表达式用于比较两个值,并返回真(1)或假(0)。
逻辑表达式基于逻辑运算符进行逻辑计算,并返回真(1)或假(0)。
29.有如下程序,该程序的输出结果是( )
#include <stdio.h>
int main()
{
int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf("a=%d,b=%dn",a,b);
return 0;
}
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
正确答案: A
case1后无break语句,继续向后执行
30.当a=3,b=2,c=1 时,表达式f=a>b>c 的值是____。
正确答案:0
31.在C 语言中表示逻辑“真”值用____。
正确答案: 非0的数字
32.当m=2,n=1,a=1,b=2,c=3 时,执行完 d=(m=a!=b)&&(n=b>c) 后; n 的值为____, m 的值为____。
正确答案:
(1) 0
(2) 1
33.程序根据判断条件是否成立,从而选择执行不同的程序段。这样的程序结构叫____。
正确答案: 分支结构或者选择结构
34.对以下程序段描述正确的是( )。
int k=10;
while (k=0)
k=k-1;
A. 执行完成后k的值未改变
B. 循环是无限循环
C. 循环体语句一次也不执行
D. 循环体语句执行一次
正确答案:C
35.下面程序段的运行结果是( )。
#include <stdio.h>
int main()
{
int n=0;
while (n++<=2);
printf("%d", n);
return 0;
}
A. 2
B. 3
C. 4
D. 有语法错误
正确答案: C
36.以下能正确计算123*…*10的程序段是( )。
A. do {
i=1; s=1;
s=s*i;
i++;
}while (i<=10);
B. i=1; s=1;
do {s=s*i;
i++;
}while (i<=10);
C. do {i=1; s=0;
s=s*i;
i++;
}while (i<=10);
D. i=1; s=0;
do {s=s*i;
i++;
}while (i<=10);
正确答案: B
37.如果c是大于1的正整数,与以下程序段功能相等的赋值语句是( )。
s=a;
for(b=1; b<=c; b++)
s=s+1;
A. s=b+c;
B. s=s+c;
C. s=a+b;
D. s=a+c;
正确答案: D
38.以下程序段的输出结果是( )。
#include<stdio.h>
int main() {
int a=3;
do {
printf("%d", a--);
}while(!a);
return 0;
}
A. 32
B. 不输出任何内容
C. 3
D. 321
正确答案: C
39.若定义int i; 则以下for语句的执行结果是( )。
for(i=1; i<10; i++) {
if (i%3) i++;
++i;
printf("%d", i);
}
A. 35811
B. 369
C. 258
D. 2468
正确答案: B
40.以下程序的输出结果是( )。
#include<stdio.h>
int main() {
int i=5;
for(;i<15;) {
i++;
if (i%4==0) printf("%2d", i);
else continue;
}
return 0;
}
A. 812
B. 81216
C. 1216
D. 8
正确答案: A
41.以下关于for语句的说法不正确的是( )。
A. for循环是先判断表达式,后执行循环体语句
B. for循环只能用于循环次数已经确定的情况
C. for循环中,可以用break语句跳出循环体
D. for循环体语句中,可以包含多条语句,但要用花括号括起来。
正确答案: B
42.从循环体内某一层跳出,继续执行循环外的语句是( )。
A. break语句
B. return语句
C. continue语句
D. 空语句
正确答案: A
43.以下循环语句的循环执行次数是( )。
for(int i=2;i==0;)
printf("%d", i--);
A. 1
B. 2
C. 0
D. 无限次
正确答案: C
44.对 for(表达式1; ;表达式3) 可理解为( )。
A. for(表达式1;0;表达式3)
B. for(表达式1;1;表达式3)
C. for(表达式1;表达式1;表达式3)
D. for(表达式1;表达式3;表达式3)
正确答案: B
45.下面程序的运行结果是( )。
#include <stdio.h>
int main()
{
int y=10;
do
{
y--;
}while(--y);
printf("%dn",y--);
return 0;
}
A. -1
B. 1
C. 8
D. 0
正确答案: D
46.执行以下程序段时,以下答案正确的是( )。
int x=-1;
do{ x=-x; }while(x);
A. 循环体执行一次
B. 循环体执行两次
C. 循环体执行无限次
D. 系统提示有语法错误
正确答案: C
47.语句while(!y)中的!y等价于y!=0。
A. 对
B. 错
正确答案: B
48.下面程序段循环一次也不执行。
int x=10;
while(x=0)
x=x-1;
A. 对
B. 错
正确答案: A
49.for语句中的表达式可以部分或全部省略,但是两个分号不能省略。
A. 对
B. 错
正确答案: A
50.break语句用于从循环体内某一层跳出,继续执行循环外的语句。
A. 对
B. 错
正确答案: A
51.有时while语句不能用for语句替代。
A. 对
B. 错
正确答案: B
52.当continue为for语句循环体的最后一条语句时,将continue改为break效果一样。
A. 对
B. 错
正确答案: B
53.C/C++语言中,函数返回值的类型由( )决定。
A. return语句中的表达式
B. 调用函数的主调函数
C. 调用函数时临时确定
D. 定义函数时所指定的函数类型
正确答案: D
54.在C/C++语言中( )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义和调用均不可以嵌套
C. 函数的定义不可以嵌套,但是函数的调用可以嵌套
D. 函数的定义和调用均可以嵌套
正确答案: C
55.关于C/C++语言中的return语句正确的是( )。
A. 只能在主函数中出现
B. 在每个函数中都必须出现
C. 可以在一个函数中出现多次
D. 只能在除主函数之外的函数中出现
正确答案: C
56.下列叙述中错误的是( )。
A. 主函数中定义的变量在整个程序中都是有效的
B. 在其它函数中定义的变量在主函数中也不能使用
C. 形式参数也是局部变量
D. 复合语句中定义的变量只在该复合语句中有效
正确答案: A
57.以下说法正确的是( )。
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共享一个存储单元
C. 形参是虚拟的,不占用存储单元
D. 只有当形参和与其对用的实参同名时才共享存储单元
正确答案: A
58.下面叙述中不正确的是( )。
A. 实参可以是常量、变量或表达式
B. 形参可以是常量、变量或表达式
C. 函数的参数是函数间传递数据的一种手段
D. 实参个数应与对应的形参个数相等,类型匹配
正确答案: B
59.以下错误的描述是( )。
A. 函数调用可以出现在执行语句中
B. 函数调用可以出现在一个表达式中
C. 函数调用可以作为一个函数的实参
D. 函数调用可以作为一个函数的形参
正确答案: D
60.以下叙述正确的是( )。
A. 全局变量的作用域一定比局部变量的作用域范围大
B. 静态类型变量的生存期贯穿于整个程序的运行期间
C. 函数的形参都属于全局变量
D. 未在定义语句中赋值的auto变量和static变量的初值都是随机值
正确答案: B
61.下列程序的输出结果是( )。
#include<stdio.h>
void f(int x,int y,int z) {
z = x + y;
}
void main() {
int a;
f(5, 6, a);
printf("%dn", a);
}
A. 12
B. 11
C. 1
D. 不确定的值
正确答案: D
62.以下程序的输出结果是( )。
#include<stdio.h>
double f(int n){
int i;
double s = 0;
for(i = 1;i <= n; i++)
s += 1/i;
return s;
}
int main(){
int i, m = 3;
float a = 0.0;
for(i = 0; i <= m; i++)
a= a + f(i);
printf("%fn", a);
return 0;
}
A、 3.000000
B. 5.5000000
C. 4.000000
D. 8.25
正确答案: A
63.以下程序的输出结果是( )。
#include<stdio.h>
int f(int a){
int b = 0;
static int c = 3;
a = c++, b++;
return a;
}
void main(){
int a, i, t;
a = 3;
for(i = 0; i < 3; i++)
t = f(a++);
printf("%dn", t);
}
A. 3
B. 5
C. 4
D. 6
正确答案: B
64.以下程序的执行结果是( )。
#include<stdio.h>
int k=1;
void fun(int m){
m += k;
k += m;
{
char k = 'B';
printf("%d,", k-'A');
}
printf("%d,%d", m, k);
}
int main(){
int i = 4;
fun(i);
printf("%d,%d", i, k);
return 0;
}
A. 2,5,64,6
B. 1,5,64,6
C. 1,6,64,6
D. 1,5,63,6
正确答案: B
65.下述程序的输出是( )。
#include<stdio.h>
int fun(int a, int b){
static int m = 0, i = 2;
i += m++;
m = i + a + b;
return (m);
}
int main(){
int k = 4, m = 1, p;
p=fun(k, m); printf("%d, ", p);
p=fun(k, m); printf("%d", p);
}
A. 8, 8
B. 8, 16
C. 7, 14
D. 7, 7
正确答案: C
第一次调用 fun(k, m) 时:
i 最初为 2,m 最初为 0。
i += m++; 执行后,i = 2 + 0 = 2,m = 1。
m = i + a + b;计算后,m = (2 + 4 + 1) = 7。
return m,此时返回值是 7。
第二次调用 fun(k, m) 时:
i 仍为 2(在上一次调用后没有重置)。
m 最初为上一次调用的结果,也就是 7。
i += m++; 执行后,i = 2 + 7 =9,m = 8。
m = i + a + b; 计算后,m = (9 + 4 + 1) = 14。
return m,此时返回值是 14。
66.下述程序的输出是( )。
int d;
void f(int p){
int d = 0;
d += p + 5;
printf("%d", d);
}
int main(){
int c = 5;
d = 5;
f(c);
d += c + 5;
printf(" %d", d);
}
A. 10 15
B. 15 25
C. 10 20
D. 以上均不对
正确答案: A
67.若有以下函数定义
int fun(){
static int k=0;
return ++k;
}
则以下程序段的输出结果是( )
int i;
for(i=1;i<=5;i++)
fun( );
printf("%d",fun());
A. 1
B. 0
C. 5
D. 6
正确答案: D
68.已知函数f的函数首部为:int f(int m);,函数功能是判断 m是否为质数,如果是质数,函数值为1,不是质数函数值为0。以下主函数的输出结果是( )
#include<stdio.h>
int main(){
int n;
n=10;
for(int i=2;i<=n/2; i++)
if(f(i)&&f(n-i))
printf("%d=%d+%dn",n,i,n-i);
return 0;
}
A.
10=2+8
10=3+7
10=4+6
10=5+5
B.
10=3+7
C.
10=3+7
10=5+5
D. 10=5+5
正确答案: C
质数是指大于1的自然数,除了1和自身以外没有其他正因数的数。换句话说,如果一个数仅能被1和它本身整除,那么它就是一个质数。
例如,前几个质数包括2、3、5、7、11、13等。值得注意的是,质数并不是能被2或其他质数整除的数
69.C 语言中不允许用户重新定义标准库函数。
A. 对
B. 错
正确答案: A
70.在定义二维数组时,可以将该数组的两个维数全部省略。
A. 对
B. 错
正确答案: B
71.同一数组可以存储不同类型的值。
A. 对
B. 错
正确答案: B
72.如果没有给一个整型数组的元素赋初值,则其元素的缺省初值全部为0。
A. 对
B. 错
正确答案: B
整型数组的元素默认初值并非全部为0,而是未定义。这是因为在内存中,未被初始化的整型变量会有一个不确定的值,这个值是由编译器和操作系统决定的。因此,如果你没有给一个整型数组的元素赋初值,那么它们的值将是不确定的。
73.数组名实际是该数组首元素的起始地址。
A. 对
B. 错
正确答案: A
74.在C语言中引用数组元素时,其数组下标的数据类型允许是( )。
A. 常量、变量
B. 整型常量、整型变量或整型表达式
C. 整型表达式
D. 任何类型的表达式
正确答案: B
75.若有说明:int a[5]; ,则下面不可以给5个数组元素赋值的是( )。
A. a={1,2,3,4,5};
B. for(i=0;i<5;i++) scanf(“%d”, &a[i]);
C. a[0]=1; a[1]=6; a[2]=8; a[3]=2; a[4]=9;
D. for(i=0;i<5;i++) a[i]=i;
正确答案: A
在 C 语言中,声明和初始化数组时可以使用花括号 {} 来赋值。但是在给数组赋值时,只有在初始化数组时可以使用花括号 {}来进行整体赋值,而在其他情况下(例如赋值语句中)是不允许直接用 {} 来对整个数组赋值的。
76.若有说明:int a[3][4]={0}; 则下面正确的叙述是( )。
A. 只有元素a[0][0]可得到初值0
B. 此说明语句不正确
C. 数组a中各元素都可得到初值,但其值不一定为0
D. 数组a中每个元素均可得到初值0
正确答案: D
77.设有定义语句int a[2][4];则以下叙述不正确的是( )。
A. 元素a[0]是由4个整型元素组a[0]代表一个地址常量
B. a[0]代表一个地址常量
C. a数组可以看成是由a[0]、a[1]两个元素组成的一维数组
D. 可以用a[0]=5;的形式给数组元素赋值
正确答案: D
78.若二维数组a有m列,假设a[0][0]位于数组的第一个位置,则元素a[i][j]在数组中位置的公式为( )。
A. i*m+j
B. j*m+i
C. i*m+j-1
D. i*m+j+1
正确答案: D
79.下面程序的运行结果是( )。
#include<stdio.h>
int main( ){
int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7 && p[i]%2)
{k=k+p[i];i++;}
printf("k=%dn",k);
return 0;
}
A. 24
B. k=24
C. k=56
D. 56
正确答案: B
80.对C语言中字符数组描述错误的是( )
A. 字符数组可以存放字符串
B. 字符数组的字符串可以整体输入输出
C. 可以在赋值语句中通过赋值运算符对字符数组整体赋值
D. 不跨页用关系运算符对字符数组中的字符串进行比较
正确答案: C
81.下面程序的运行结果是( )。
#include<stdio.h>
#include<string.h>
int main( ){
char str[ ]="String";
printf("%dn",strlen(strcpy(str,"China")));
return 0;
}
A. 5
B. 6
C. 7
D. 10
正确答案: A
81.以下错误的字符串赋值或赋初值的方式是( )
A. char str1[]=”string”, str2[]=”12345678”; strcpy(str2,str1);
B. char str[7]={‘s’,’t’,’r’,’i’,’n’,’g’};
C. char str[10]; str=”string”;
D. char *str; str=”string”;
正确答案: C
82.下面程序的运行结果是( )
#include <stdio.h>
#include <string.h>
int main( ){
int i=0; char a[]="aqid";
char b[]="abm", c[10];
while(a[i]!='' && b[i]!=''){
if(a[i]>b[i]) c[i]=a[i]-32;
else c[i]=b[i]-32;
i++;}
c[i]='';
puts(c);
return 0;
}
A. abm
B. AQM
C. aqm
D. ABM
正确答案: B
A为65
a为97
83.下面程序的输出结果是
#include<stdio.h>
#include <string.h>
int main(){
char str[50]="ABCDEFG",p1[10]="abcd";
char p2[10]="efgh";
strcpy(str+1,p2+1);
puts(str);
strcpy(str+3,p1+3);
puts(str);
return 0;
}
84.下面程序的输出结果是
#include<stdio.h>
#include <string.h>
int main(){
char s1[20]="abcd",s2[10]="ABCD";
puts(strcat(s1+2,s2+1));
return 0;
}
正确答案:cdBCD
85.下面程序的输出结果是
#include<stdio.h>
#include <string.h>
int main(){
char s1[20]="abcd",s2[20]="ABCD";
char str[20]="xyz";
strcat(s1,s2+1);
puts(s1);
strcpy(str+2,s1);
puts(str);
return 0;
}
86.下面程序的输出结果是
#include<stdio.h>
#include <string.h>
int main(){
char p[20]="abcdefgh";
printf("%d",strlen(p));
return 0;
}
正确答案:4
87.若有语句:int x[]={1,2,3,4,5}; int *ptr; ptr=x; 则( ) 是对数组元素x[1]的正确引用。
A. ptr+1
B. *ptr+1
C. *(ptr+1)
D. *ptr++
正确答案: C
88.下列语句哪个是正确的( )。
A. int a=“a”;
B. char c=105;
C. char c=“abc”;
D. char c=“n”;
正确答案: B
89.对于指针的运算,下列说法( )是错误的。
A. 可以用一个空指针赋值给某个指针
B. 两个指针可以进行加法运算
C. 一个指针可以加上一个整数
D. 两个指针在一定条件下,可以进行相等或不相等的运算
正确答案: B
90.若有定义int a[9],*p=a;则p+5表示( )。
A. 数组元素a[5]的值
B. 数组元素a[6]的地址
C. 数组元素a[5]的地址
D. 数组元素a[0]的值加上5
正确答案: C
91.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )。
A. p2=k;
B. k=*p1+*p2;
C. p1=p2;
D. k=*p1;
正确答案: A
92.若有char *s,初始指向的字符串为”Hello world!”,若要使变量p指向s所指向的字符串,则p应定义为( )。
A. char *p=s;
B. char *p=&s;
C. char *p;p=&s;
D. char *p;p=*s;
正确答案: A
93.程序段
#include<stdio.h>
#include <string.h>
int main(){
char str[ ]="ABC";
char *p=str ;
printf("%dn",*(p+2));
}
的运行结果是( )。
A. 67
B. 0
C. 字符’C’的地址
D. 字符’C’
正确答案: A
字符 ‘C’ 的 ASCII 值为 67。在 C 语言中,字符在内存中以 ASCII 码的形式存储,使用指针访问字符串中的特定字符时,返回的是该字符在 ASCII 表中的对应值。
94.下面程序段的运行结果是____。
#include<stdio.h>
#include <string.h>
int main(){
char p1[]="abcdefgh",*p=p1;
p+=3;
printf("%dn",strlen(strcpy(p,"ABCD")));
}
正确答案:4
95.int *p=150;语法错误( )。
A. 对
B. 错
正确答案: 对
在 C 语言中,将一个整数值直接赋给一个指针是不正确的,因此 int *p = 150; 这行代码存在语法错误。指针应该指向一个有效的内存地址,而不是直接存储一个整数值。
96.若有语句:char *s1=“string2”;则语句strcpy(“china”,s1);是正确的。
A. 对
B. 错
正确答案: B
97.对于指向同一个数组的两个指针变量而言,两个指针变量相减的操作是有意义的。
A. 对
B. 错
正确答案: A
98.char *s=“C Language”;表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。()
A. 对
B. 错
正确答案:A
99.已知有以下的说明,int a[]={8,1,2,5,0,4,7,6,3,9}
;那么a[*(a+a[3])]
的值为____。
正确答案:0
100.若有定义int i,*p=&i;则&*p等价于____。
正确答案: p或&i
101.在int k=8,*p=&k中,*p的值是____。
正确答案: 8
102.下面程序int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%dn",*(p+2));
的输出结果是____。
正确答案:3
103.已知char m[]="Convert",*p=m;
则*(p+5)的值是____。
正确答案:r
104.若有int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[0];int *q=&a[8];
则q-p=____。
正确答案:8
原文地址:https://blog.csdn.net/m0_61350160/article/details/135365072
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_53502.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!