1.在下列选项中,正确的语句是( )。
A:++t;
B:n1=(n2=(n3=0));
C:a=b+c=1;
D:k=i=j;
答案:AI参考:在下列选项中,正确的语句是(D:k=i=j;)。\n\n解释:\nA选项中,只有变量t被自增1,但是未提供该变量的上下文信息,无法判断其后续行为,因此不正确。\nB选项中,三个等号连用表示无任何操作,等号左边的表达式(n2=(n3=0))未给出具体的含义,无法判断其后续行为,因此不正确。\nC选项中,赋值语句的格式不正确,正确的赋值语句应该为“a = b + c;”,或者“a = 1; b = c;”,因此不正确。\nD选项中,三个等号中间没有操作符或变量,这个表达式相当于"k=i",“i=j”,“j=j”或者"k=j",“j=j”这种简单的赋值操作,且这个表达式后的两个变量(i和j)均为整数类型变量,不会引起溢出等问题,所以该选项是正确的。\n\n综上,答案为D选项。'
2.两个指针变量可以( )。
A:相减
B:比较
C:相加
D:指向同一地址
答案:AI参考:正确选项是【D:指向同一地址】。\n\n两个指针变量可以指向同一地址,即它们指向内存中的同一块内存区域。这样,它们可以相互操作,例如通过指针变量来访问和修改该内存区域中的值。其他选项如相减、比较和相加需要两个指针变量分别指向不同的内存地址才能进行。因此,答案为D。'
3.下列是合法的用户自定义标识符的是( )。
A:_w1
B:int
C:LINE-3
D:3_xy
答案:AI参考:答案是B:int。\n\n在C/C++等编程语言中,用户自定义标识符必须遵循一些规则,包括:\n\n1. 标识符必须以字母(A-Z或a-z)或下划线(_)开头。\n2. 标识符的剩余部分可以包含字母、数字或下划线。\n\n根据这些规则,选项B中的"int"是一个合法的用户自定义标识符,因为它以字母开头,并且不包含任何特殊字符或非法字符。而其他选项中,"_w1"以下划线开头,但后面跟着一个数字,不符合规则;"LINE-3"包含非法字符"-";"3_xy"包含非法字符"3"和下划线,且以数字开头,也不符合规则。因此,答案是B。'
4.有定义:int x,*p=&x;,则能为变量x正确赋值的语句是( )。
A:scanf("%f",&x);
B:scanf("%d",p);
C:scanf("%d",*p);
D:scanf("%d",x);
答案:AI参考:正确选项是 D:scanf("%d",x);\n\n题目中已经定义了变量x和p,其中p是一个指向x的指针。根据题目要求,可以为变量x正确赋值的语句应该是直接使用"%d"来赋值,即scanf("%d",x);。选项A和B中,scanf函数中传入的参数类型不正确,选项C中传入的参数为指针的地址,而不是指针变量本身。因此,只有选项D是正确的赋值语句。'
5.表达式: a
A:
B:&&
C:||
D:()
答案:AI参考:答案为 C:||。\n\n运算符优先级从高到低依次为:单目运算符、乘方、一元正负、比较运算符、逻辑与运算符、逻辑或运算符、条件运算符、赋值运算符。本题中表达式为 a
6.设以下变量均为int类型,表达式的值为7的是( )。
A:(x=y=6,x+y,y+1)
B:(x=6,x+1,y=6,x+y)
C:(x=y=6,x+y,x+1)
D:(y=6,y+1,x=y,x+1)
答案:x=6,x+1,y=6,x+y
7.C语言中 while 和 do-while 循环的主要区别描述错误的是()
A:do-while 允许从外部转到循环体内
B:do-while 的循环体至少无条件执行一次
C:while的循环控制条件比 do-while的循环控制条件更严格
D:do-while 的循环体不能是复合语句
答案:do-while
8.在以下给出的表达式中,与 do--while(E)语句中的E等价的表达式是( )。
A:(!E==0)
B:(E!=0)
C:(E>0||E
D:(E==0)
答案:(E==0)
9.在C语言程序中,关于函数错误的说法是( )。
A:函数的定义可以嵌套,但函数的调用不可以嵌套
B:函数的定义和函数的调用均不可以嵌套
C:函数的定义和函数的调用均可以嵌套
D:函数的定义不可以嵌套,但函数的调用可以嵌套
答案:函数的定义可以嵌套,但函数的调用不可以嵌套;
函数的定义和函数的调用均不可以嵌套;
函数的定义和函数的调用均可以嵌套
10.在下面关于一维数组的定义中,其中正确的是( )
A:int x[ ] = {1,2,3,4,5}
B:int x[5]
C:int x[ ]
D:int x[5] = {0}
答案:int[]
11.关于指针概念说法正确的是( )。
A:一个变量的地址称为该变量的指针
B:一个指针变量只能指向同一类型变量
C:指针变量可以由整数赋,不能用浮点赋
D:只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
12.以下数组定义正确的是( )。
A:int a[2][3];
B:int b[][3]={0,1,2,3};
C:int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
D:int c[100][100]={0};
13.下面有关 for 循环不正确的描述是( )。
A:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
B:在 for 循环中,不能用 break 语句跳出循环体
C:for 循环是先执行循环循环体语句,后判断表达式
D:for 循环只能用于循环次数已经确定的情况
14.C语言中,标识符只能由字母,数字和下划线三种字符组成,且第一个字符必须为( )。
A:下划线
B:字母或下划线
C:字母,数字和下划线中任一字符
D:字母
15.调用函数的实参与被调用函数的形参应该有如下关系( ) 。
A:只要求实参和形参数据类型相同
B:这三点均需具备
C:只要求实参和形参个数相等
D:只要求形参和实参顺序相同
16.已有定义int a=-2;和输出语句 printf("%8x",a);以下正确的叙述是()。
A:%8x不是错误的格式符,其中数字8规定了输出字段的宽度
B:整型变量的输出形式只有%d一种
C:%x是格式符的一种,它可以适用于任何一种类型的数据
D:%x是格式符的一种,其变量的值按十六进制输出,但%8x是错误的
17.若有说明: int a[3][4]={0};则下面正确的叙述是( )。
A:此说明语句不正确
B:只有元素a[0][0]可得到初值0
C:数组a中各元素都可得到初值,但其值不一定为0
D:数组a中每个元素均可得到初值0
18.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是( )。
A:int *p=x;
B:int *p=
C:int p=
D:*p=*x;
19.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。
A:传递方式由用户指定
B:由实参传给形参,再由形参传给实参
C:单向值传递
D:地址传递
20.下列数据中,不正确的数值或字符常量是( )。
A:8.9e1.2
B:10
C:0xff00
D:82.5
21.若使用一维数组名作函数实参,则以下正确的说法是( )。
A:实参数组名与形参数组名必须一致
B:在被调用函数中,不需要考虑形参数组的大小
C:必须在主调函数中说明此数组的大小
D:实参数组类型与形参数组类型可以不匹配
22.转换说明符%x的输出形式是( )。
A:八进制
B:十进制
C:十六进制
D:二进制
23.sizeof(double)的结果值是( )。
A:8
B:4
C:出错
D:2
24.设C语言中,short类型数据占( )。
A:8个字节
B:1个字节
C:2个字节
D:4个字节
25.以下叙述中不正确的是()
A:在C程序中,j++;是一条赋值语句
B:一个好的程序应该有详尽的注释
C:C程序中的#include和#define均不是C语句
D:在C程序中,赋值运算符的优先级最低
26.以下选项中正确的语句组是( )。
A:char * s="BOOK!";
B:char * s={"BOOK!"};
C:char s[]; s="BOOK!";
D:char s{10}; s="BOOK!";
27.设int n=3;则有表达式n++,n的结果是( )。
A:3
B:5
C:2
D:4
28.整型变量x和y的值相等,且为非0值,则以下选项中,结果为0的表达式是( ) 。
A:x|y
B:x||y
C:x^y
D:x&y
29.若有char a[80],*s=a;不正确的输入语句是( )。
A:scanf("%s",s);
B:puts(s);
C:gets(s);
D:getchar(s);
30.调用strlen("abcdef\ng")的结果为( )。
A:8
B:4
C:5
D:10
31.C语言中用于结构化程序设计的三种基本结构是( )。
A:if、switch、break
B:顺序结构、选择结构、循环结构
C:for、while、do-while
D:if、for、continue
32.在C语言中,以下不正确的说法是( )。
A:形参可以是常量,变量或表达式
B:实参可以为任何类型
C:形参应与其对应的实参类型一致
D:实参可以是常量,变量或表达式
33.以下符号中不能用作用户标识符的符号是( )。
A:_256
B:void
C:Struct
D:scanf
34.以下选项中合法的标识符是( )。
A:41640
B:1_ _
C:1_1
D:_11
35.以下每个选项都代表一个常量,其中不正确的实型常量是( )。
A:0.456
B:77.77
C:0.8103e
D:0.2607
36.语句while(!E);中的表达式!E等价于( )。
A:E==0
B:E==1
C:E!=0
D:E!=1
37.在exce((v1,v2),(v3,v4,v5),v6);函数调用中,实参的个数是( )。
A:4
B:3
C:5
D:6
38.下列表达式中,可作为C语言合法表达式的是( )。
A:3/2/1/0
B:[3,2,1,0]
C:(3,2,1,0)
D:3=2=1=0
39.设有int x=11;则表达式(x++*1/3)的值为( )。
A:3
B:4
C:12
D:11
40.数组名作为实参数传递给函数时,数组名被处理为( )。
A:该数组的首地址
B:该数组的长度
C:该数组的元素个数
D:该数组中各元素的值
41.已知定义:int b[]={1,2,3,4},y,*p=b;则执行y=*p++后,y的值应为( )。
A:3
B:1
C:2
D:4
42.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。
A:-12
B:-3
C:6
D:9
43.以下选项中不能用作变量名的是( )。
A:sum
B:switch
C:_123
D:_float
44.若已定义x、y是int变量,x=2;,则表达式y=2.75+x/2的值是( )。
A:5
B:5.5
C:3
D:4
45.下列运算符中优先级最高的运算符应该是( )。
A:||
B:==
C:%
D:!
46.在以下的运算符中,优先级最高的运算符应是( )。
A:=
B:!=
C:*(乘号)
D:()
47.设有逗号表达式(a=3*5,a*4),a+15;,则a的值为( )。
A:60
B:15
C:30
D:90
48.有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( )。
A:0
B:-12
C:9
D:3
49.下列变量说明语句中,正确的是( )。
A:int x;z;
B:char:a b c;
C:char a;b;c;
D:int x,z;
50.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是( )。
A:strcpy(a2,a1);
B:strcat(a2,a1);
C:strcpy(a1,a2);
D:strcat(a1,a2);
51.以下不能正确定义二维数组的选项是( )。
A:int a[2][2]={{1},2,3};
B:int a[2][]={{1,2},{3,4}};
C:int a[][2]={1,2,3,4};
D:int a[2][2]={{1},{2}};
52.有定义:int a[5],*p1=a,*p2=p1;,则能够正确表示元素a[2]的是( )。
A:*(p2+2)
B:p2+2
C:*p2+2
D:*p1+2
53.以下不符合C语言语法的赋值语句是( )。
A:j=j=5;
B:y=float(j);
C:k=2*4,k*4;
D:j++;
54.下列运算符中,属于关系运算符的是( )。
A:=
B:--
C:
D:++
55.以下选项中,不正确的 C 语言字符型常量是()。
A:"a"
B:'\x41'
C:'a'
D:'\101'
56.在C语言中,char型数据在内存中的存储形式是( )。
A:补码
B:反码
C:原码
D:ASCII码
57.在C语言中,函数的隐含存储类别是( )。
A:auto
B:static
C:extern
D:无存储类别
58.若用数组名作为函数调用的实参,传递给形参的是( )。
A:数组元素的个数
B:数组第一个元素的
C:数组中全部元素的值
D:数组的首地址
59.逗号表达式(a=3*5,a*4),a+15的值为( )。
A:15
B:不确定
C:30
D:60
60.设有数组定义: char array [ ]="China"; 则数组 array所占的空间为( )。
A:4个字节
B:7个字节
C:5个字节
D:6个字节
61.有定义:int x=100,*p=&x;,则能正确输出变量x值的语句是( )。
A:printf("%d",*p);
B:printf("%d",*x);
C:printf("%d",p);
D:printf("%d",&p);
62.以下选项中,不能用作标识符的是( )。
A:_00
B:print
C:FOR
D:&a
63.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为()
A:算术运算、赋值运算、关系运算
B:关系运算、算术运算、赋值运算
C:算术运算、关系运算、赋值运算
D:关系运算、赋值运算、算术运算
64.在C语言中,调用函数除函数名外,还必须有( )。
A:函数预说明
B:( )
C:实际参数
D:函数返回值
65.定义为void类型的函数,其含义是( )。
A:调用函数后,被调用的函数不返回
B:调用函数后,被调用的函数的返回值为任意的类型
C:调用函数后,被调用的函数没有返回值
D:三种说法都是错误的
66.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为( ) 。
A:1
B:2.0
C:2
D:4
67.以下运算符中,优先级最低的是( )。
A:!=
B:=
C:+
D:*
68.以下选项中合法的用户标识符是( )。
A:_2Test
B:A.dat
C:3Dmax
D:long
69.下列数组说明中,说法正确的是( )。
A:static char str[]="China";
B:static char str[]; str="China";
C:static char str1[],str2[];str2={"China"}; strcpy(str1,str2);
D:static char str1[5],str2[]={"China"}; str1=str2;
70.在C语言的函数中,下列正确的说法是( )。
A:必须有形参
B:可以有也可以没有形参
C:数组名不能作形参
D:形参必须是变量名
71.有定义:int a[5][4],*p=a[0];,数组a的首地址为100,则p+2*4+3等于( )。
A:122
B:116
C:120
D:118
72.设有语句:int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是( )。
A:-12
B:0
C:3
D:9
73.下列数据中,不合法的C语言实型数据的是( )。
A:0.123
B:2.1e3.5
C:123000
D:789
74.以下定义语句中,错误的是( )。
A:int n=5,a[n];
B:char *a[3];
C:char s[10]="test";
D:int a[]={1,2};
75.在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为()。
A:1
B:True
C:非0
D:0
76.为表示关系x≥y≥z,正确的C语言表达式为( )。
A:(x>=y) & (y>=z)
B:(x>=y)AND(y>=z)
C:(x>=y>=z)
D:(x>=y)&&(y>=z)
77.设a=1,b=2,c=3,d=4,则表达式:aA:4
B:1
C:2
D:3
78.在C语言中,int、char和short三种类型数据在内存中所占用的字节数( )。
A:由用用户自己定义
B:由所用机器的机器字长决定
C:均为2个字节
D:是任意的
79.C语言中,double类型数据占( )。
A:8个字节
B:1个字节
C:2个字节
D:4个字节
80.为了判断两个字符串s1和s2是否相等,应当使用( )。
A:if(strcmp(s1,s2))
B:if(s1=s2)
C:if(s1==s2)
D:if(strcmp(s1,s2)==0)
温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!