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 元后可查看付费内容,请先翻页预览!
点赞(6) dxwkbang
返回
顶部