计算机二级C语言考试题库100道及答案_第1页
计算机二级C语言考试题库100道及答案_第2页
计算机二级C语言考试题库100道及答案_第3页
计算机二级C语言考试题库100道及答案_第4页
计算机二级C语言考试题库100道及答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机二级C语言考试题库100道及答案1.以下关于C语言变量声明的说法,正确的是()A.变量声明只能在函数体的开头B.变量声明可以在函数体内的任何位置C.变量声明只能在主函数中进行D.变量声明必须在程序的开头答案:B解析:在C语言中,变量声明可以在函数体内的任何位置,并非只能在函数体开头或主函数中,也不一定要在程序开头。2.若有定义inta=5,b=3;则表达式a/b*2的结果是()A.3B.3.333333C.4D.2答案:A解析:在C语言中,整数相除结果取整,a/b即5/3结果为1,再乘以2得2,不过这里考查整数运算特性,实际结果为3(因为取整)。3.以下哪个是合法的C语言标识符()A.2abcB.intC._abcD.abc@答案:C解析:C语言标识符只能由字母、数字和下划线组成,且不能以数字开头,int是关键字不能作为标识符,@不是合法字符。4.若有定义charch='A';则执行ch=ch+32;后,ch的值是()A.'a'B.'A'C.'32'D.不确定答案:A解析:在ASCII码中,大写字母和小写字母相差32,将大写字母'A'加上32就得到对应的小写字母'a'。5.以下关于for循环的说法,错误的是()A.for循环的初始化部分可以省略B.for循环的条件判断部分可以省略C.for循环的迭代部分可以省略D.for循环不能嵌套使用答案:D解析:for循环的初始化、条件判断和迭代部分都可以省略,并且for循环是可以嵌套使用的。6.若有定义intarr[5]={1,2,3,4,5};则arr[2]的值是()A.1B.2C.3D.4答案:C解析:数组下标从0开始,arr[2]表示数组的第3个元素,值为3。7.以下关于函数的说法,正确的是()A.函数必须有返回值B.函数可以没有参数C.函数名不能和变量名相同D.函数只能在主函数之后定义答案:B解析:函数可以没有返回值(返回类型为void),可以没有参数,函数名可以和变量名相同,函数也可以在主函数之前定义。8.若有定义intx=10,y=20;则执行语句x=x^y;y=x^y;x=x^y;后,x和y的值分别是()A.10,20B.20,10C.10,10D.20,20答案:B解析:通过异或运算可以实现两个变量值的交换,经过这三条语句后,x和y的值交换。9.以下关于指针的说法,错误的是()A.指针可以指向任何数据类型B.指针变量必须初始化C.指针可以进行算术运算D.指针可以作为函数参数答案:B解析:指针变量不一定要初始化,如果未初始化就使用会导致未定义行为,但不是必须初始化。10.若有定义struct{inta;charb;}s;则sizeof(s)的值可能是()A.4B.5C.6D.8答案:D解析:结构体存在内存对齐,int通常占4字节,char占1字节,考虑对齐后可能占8字节。11.以下关于C语言注释的说法,正确的是()A.注释只能单行使用B.注释可以嵌套使用C.注释在编译时会被忽略D.注释可以放在代码的任何位置答案:C解析:C语言注释有单行注释和多行注释,注释不能嵌套,注释在编译时会被忽略,但不是可以放在代码的任何位置。12.若有定义inta=10;则执行语句a+=a-=a*a;后,a的值是()A.-180B.180C.0D.-200答案:D解析:根据运算符优先级和结合性,先计算a*a为100,然后a-=100得a为-90,最后a+=-90得a为-180。13.以下哪个是正确的C语言转义字符()A.'\n'B.'\08'C.'\x1g'D.'\a1'答案:A解析:'\n'是换行符,是合法的转义字符,'\08'八进制不能出现8,'\x1g'十六进制不能出现g,'\a1'不是合法转义字符。14.若有定义intarr[3][4];则arr[1][2]是该二维数组的第()个元素A.6B.7C.8D.9答案:B解析:二维数组按行存储,第一行4个元素,arr[1][2]是第二行第3个元素,所以是第7个元素。15.以下关于while循环的说法,正确的是()A.while循环的条件判断部分必须是布尔表达式B.while循环一定会执行至少一次C.while循环可以嵌套使用D.while循环不能使用break语句答案:C解析:while循环条件判断部分可以是任意表达式,do-while循环一定会执行至少一次,while循环可以使用break语句跳出循环,且可以嵌套使用。16.若有定义voidfunc(int*p);则以下调用正确的是()A.inta=10;func(a);B.inta=10;func(&a);C.int*p;func(p);D.intarr[5];func(arr[0]);答案:B解析:函数参数是指针类型,需要传递变量的地址,A选项传递的是值,C选项指针未初始化,D选项传递的是数组元素的值。17.以下关于switch语句的说法,错误的是()A.switch语句的表达式只能是整数类型B.case后面的常量表达式可以相同C.switch语句可以没有default分支D.break语句可以用于跳出switch语句答案:B解析:case后面的常量表达式不能相同,switch语句表达式可以是整数类型,可没有default分支,break可跳出switch语句。18.若有定义inta=5,b=7;则表达式!(a>b)的值是()A.0B.1C.5D.7答案:B解析:a>b为假,值为0,!0为真,值为1。19.以下关于数组名的说法,正确的是()A.数组名是一个指针常量B.数组名可以进行自增自减运算C.数组名可以作为函数返回值D.数组名可以直接赋值给另一个数组名答案:A解析:数组名是一个指针常量,不能进行自增自减运算,不能作为函数返回值,也不能直接赋值给另一个数组名。20.若有定义charstr[]="hello";则strlen(str)的值是()A.5B.6C.7D.不确定答案:A解析:strlen函数计算字符串长度,不包括字符串结束符'\0',"hello"长度为5。21.以下关于函数返回值的说法,错误的是()A.函数可以返回多个值B.函数返回值的类型必须和函数定义的返回类型一致C.函数可以返回指针类型D.函数可以返回void类型答案:A解析:C语言中函数一次只能返回一个值,返回值类型要和定义的一致,可以返回指针类型和void类型。22.若有定义inta=10,b=20;则执行语句if(a>b)a=b;b=a;后,b的值是()A.10B.20C.30D.不确定答案:A解析:由于a>b为假,不执行a=b;但会执行b=a;所以b的值为10。23.以下关于宏定义的说法,正确的是()A.宏定义必须在程序开头B.宏定义可以带参数C.宏定义会进行类型检查D.宏定义只能定义常量答案:B解析:宏定义可以在程序任意位置,可带参数,宏定义不会进行类型检查,还可以定义带参数的宏等。24.若有定义intarr[5]={1,2,3,4,5};则*(arr+3)的值是()A.1B.2C.3D.4答案:D解析:arr是数组首地址,arr+3指向数组第4个元素,*(arr+3)就是该元素的值4。25.以下关于do-while循环的说法,正确的是()A.do-while循环的条件判断部分在循环体之前B.do-while循环至少会执行一次C.do-while循环不能嵌套使用D.do-while循环不能使用continue语句答案:B解析:do-while循环条件判断在循环体之后,至少执行一次,可嵌套使用,也能使用continue语句。26.若有定义int*p,a=10;p=&a;则*p的值是()A.指针p的地址B.变量a的地址C.10D.不确定答案:C解析:p指向变量a的地址,*p表示取p所指向地址的值,即a的值10。27.以下关于文件操作的说法,错误的是()A.打开文件时必须指定文件打开模式B.文件操作完成后必须关闭文件C.可以同时打开多个文件D.文件只能以文本模式打开答案:D解析:文件可以以文本模式或二进制模式打开,打开文件要指定模式,操作完要关闭,可同时打开多个文件。28.若有定义inta=5;则执行语句a*=a+1;后,a的值是()A.25B.30C.36D.42答案:B解析:先计算a+1为6,然后a*=6即a=a*6,a变为30。29.以下关于条件运算符(?:)的说法,正确的是()A.条件运算符是三元运算符B.条件运算符的优先级高于算术运算符C.条件运算符只能用于整数类型D.条件运算符不能嵌套使用答案:A解析:条件运算符是三元运算符,优先级低于算术运算符,可用于多种数据类型,也能嵌套使用。30.若有定义intarr[3][4];则&arr[1][2]-&arr[0][0]的值是()A.6B.7C.8D.9答案:B解析:&arr[1][2]和&arr[0][0]都是地址,相减得到元素个数差,是7。31.以下关于for循环嵌套的说法,错误的是()A.外层循环执行一次,内层循环可能执行多次B.内层循环执行完一次,外层循环才会执行下一次C.嵌套的循环可以是不同类型的循环D.嵌套循环的层数没有限制答案:D解析:虽然理论上嵌套循环层数没有绝对限制,但受内存等因素影响,实际上不能无限嵌套。32.若有定义inta=10;则执行语句a=a<<2;后,a的值是()A.20B.40C.80D.160答案:B解析:左移运算符,a<<2相当于a乘以2的2次方,10乘以4得40。33.以下关于函数调用的说法,正确的是()A.函数调用时实参和形参的类型必须完全一致B.函数调用时实参和形参的个数必须相同C.函数调用时可以使用函数名作为实参D.函数调用时可以传递数组名答案:D解析:函数调用时实参和形参类型兼容即可,个数要相同,函数名不能作为实参,可传递数组名。34.若有定义charstr1[]="hello",str2[]="world";则strcmp(str1,str2)的值()A.小于0B.等于0C.大于0D.不确定答案:A解析:strcmp函数比较字符串大小,按字典序"hello"小于"world",返回值小于0。35.以下关于静态变量的说法,正确的是()A.静态变量只能在函数内部定义B.静态变量在程序运行期间一直存在C.静态变量不能被初始化D.静态变量每次函数调用时都会重新初始化答案:B解析:静态变量可在函数内部或外部定义,在程序运行期间一直存在,可初始化,且只初始化一次。36.若有定义inta=5,b=3;则表达式a%b的值是()A.0B.1C.2D.3答案:C解析:%是取余运算符,5除以3余数为2。37.以下关于指针和数组的关系,说法错误的是()A.数组名可以隐式转换为指针B.指针可以指向数组元素C.指针和数组是完全相同的概念D.可以通过指针访问数组元素答案:C解析:数组名可隐式转换为指针,指针可指向数组元素,可通过指针访问数组元素,但指针和数组不是完全相同概念。38.若有定义intarr[5]={1,2,3,4,5};int*p=arr;则p[2]的值是()A.1B.2C.3D.4答案:C解析:p指向数组首地址,p[2]等价于*(p+2),即数组第3个元素的值3。39.以下关于if-else语句的说法,正确的是()A.if-else语句只能嵌套一层B.if-else语句的条件判断部分必须是布尔表达式C.if-else语句可以省略else分支D.if-else语句不能和switch语句嵌套使用答案:C解析:if-else语句可多层嵌套,条件判断部分可以是任意表达式,可省略else分支,也能和switch语句嵌套使用。40.若有定义inta=10;则执行语句a=a>>1;后,a的值是()A.5B.10C.20D.40答案:A解析:右移运算符,a>>1相当于a除以2,10除以2得5。41.以下关于函数递归调用的说法,错误的是()A.递归调用必须有终止条件B.递归调用会消耗大量栈空间C.递归调用的效率一定比迭代高D.递归调用可以解决一些复杂的问题答案:C解析:递归调用要有终止条件,会消耗栈空间,能解决复杂问题,但效率不一定比迭代高。42.若有定义structStudent{charname[20];intage;}stu;则对stu中age成员赋值为20的正确语句是()A.stu.age=20;B.Student.age=20;C.stu->age=20;D.&stu.age=20;答案:A解析:对于结构体变量,使用“.”运算符来访问成员,stu是结构体变量,所以用stu.age=20赋值;B选项Student是结构体类型名,不能这样用;C选项“->”用于结构体指针;D选项&stu.age是取地址,不能作为左值赋值。43.以下关于逗号运算符的说法,正确的是()A.逗号运算符的优先级高于赋值运算符B.逗号表达式的值是最后一个表达式的值C.逗号表达式只能用于整数类型D.逗号运算符不能嵌套使用答案:B解析:逗号运算符优先级低于赋值运算符,逗号表达式的值是最后一个表达式的值,可用于多种数据类型,也能嵌套使用。44.若有定义intarr[10];要给数组arr的所有元素赋值为0,以下正确的是()A.arr={0};B.for(inti=0;i<10;i++)arr[i]=0;C.arr[10]={0};D.arr[]={0};答案:B解析:A选项数组名是常量指针,不能这样整体赋值;C选项arr[10]越界;D选项语法错误,要给数组元素逐个赋值可以用循环,所以B正确。45.若有定义int*p,a[5]={1,2,3,4,5};p=a+2;则*p++的值是()A.1B.2C.3D.4答案:C解析:p指向a[2],*p++先取p所指的值即3,然后p再自增指向下一个元素。46.以下关于循环语句中break和continue的说法,错误的是()A.break语句可以跳出当前所在的循环B.continue语句可以跳过本次循环的剩余部分C.break语句只能用于循环语句D.continue语句可以用于switch语句答案:D解析:break可跳出当前循环,continue跳过本次循环剩余部分,break还可用于switch语句,continue不能用于switch语句。47.若有定义inta=3,b=4,c;c=a>b?a:b;则c的值是()A.3B.4C.7D.不确定答案:B解析:条件运算符,a>b为假,取冒号后面的值,即b的值4。48.以下关于函数原型声明的说法,正确的是()A.函数原型声明必须在函数定义之前B.函数原型声明可以省略参数名C.函数原型声明不能在头文件中D.函数原型声明的返回类型必须和函数定义一致答案:B解析:函数原型声明不一定要在函数定义之前,可省略参数名,可放在头文件中,返回类型要和函数定义一致,但强调可省略参数名更突出该知识点特性。49.若有定义charstr[]="abc\0def";则strlen(str)的值是()A.3B.4C.7D.8答案:A解析:strlen遇到'\0'就结束计算长度,所以长度是3。50.以下关于内存动态分配的说法,错误的是()A.可以使用malloc函数分配内存B.分配的内存使用完后必须释放C.可以使用free函数释放内存D.动态分配的内存不会出现内存泄漏答案:D解析:可以用malloc分配内存,用free释放,使用完要释放,但如果不释放就会出现内存泄漏。51.若有定义inta=5,b=6;则表达式(a<b)?(a++):(b++)的值是()A.5B.6C.7D.不确定答案:A解析:a<b为真,取a++的值,先取a的值5,然后a自增。52.以下关于字符数组和字符串的说法,错误的是()A.字符串可以用字符数组存储B.字符数组一定是字符串C.字符串以'\0'结尾D.可以使用strcpy函数复制字符串答案:B解析:字符串可用字符数组存储,字符串以'\0'结尾,可用strcpy复制,但字符数组不一定是字符串,只有以'\0'结尾的字符数组才是字符串。53.若有定义intarr[2][3]={{1,2,3},{4,5,6}};则arr[1][0]的值是()A.1B.4C.5D.6答案:B解析:二维数组arr[1][0]是第二行第一个元素,值为4。54.以下关于函数参数传递的说法,正确的是()A.函数参数传递只有值传递B.指针作为参数传递是值传递C.数组作为参数传递是值传递D.结构体作为参数传递是地址传递答案:B解析:函数参数传递有值传递和地址传递,指针作为参数传递是将指针的值(地址)传递,属于值传递,数组作为参数传递会退化为指针,结构体作为参数传递默认是值传递。55.若有定义inta=10;则执行语句a%=3;后,a的值是()A.0B.1C.2D.3答案:B解析:a%=3等价于a=a%3,10除以3余数为1。56.以下关于预处理指令的说法,正确的是()A.预处理指令在编译前处理B.预处理指令必须以分号结尾C.预处理指令只能在程序开头使用D.预处理指令不能嵌套使用答案:A解析:预处理指令在编译前处理,不以分号结尾,可在程序任意位置使用,也能嵌套使用。57.若有定义int*p,a=5;p=&a;则++*p的值是()A.5B.6C.地址值D.不确定答案:B解析:先取p所指的值即a的值5,然后自增为6。58.以下关于嵌套if语句的说法,错误的是()A.嵌套if语句可以实现多分支选择B.嵌套if语句的层次没有限制C.嵌套if语句的else总是和最近的if配对D.嵌套if语句的效率一定比switch语句高答案:D解析:嵌套if可实现多分支选择,层次无绝对限制,else和最近的if配对,但效率不一定比switch高。59.若有定义intarr[5]={1,2,3,4,5};int*p=arr+4;则*--p的值是()A.1B.2C.3D.4答案:D解析:p指向arr[4],先将p自减指向arr[3],然后取其值4。60.以下关于文件读写操作的说法,正确的是()A.只能按顺序读写文件B.可以使用fread函数读取二进制文件C.写入文件的数据不能是结构体类型D.打开文件后不需要关闭答案:B解析:文件读写可以随机读写,fread可读取二进制文件,可写入结构体类型数据,打开文件后要关闭。61.若有定义inta=7,b=2;则表达式a/b的值是()A.3B.3.5C.4D.不确定答案:A解析:整数相除结果取整,7除以2结果为3。62.以下关于枚举类型的说法,错误的是()A.枚举类型是一种用户自定义类型B.枚举常量的值默认从0开始C.枚举常量可以手动赋值D.枚举类型可以直接进行算术运算答案:D解析:枚举类型是自定义类型,常量默认从0开始,可手动赋值,但枚举类型不能直接进行算术运算。63.若有定义struct{intx;inty;}point={1,2};则point.x的值是()A.0B.1C.2D.不确定答案:B解析:结构体变量point初始化,point.x的值为1。64.以下关于逻辑运算符的说法,正确的是()A.逻辑与运算符(&&)的优先级高于逻辑或运算符(||)B.逻辑运算符的操作数只能是整数类型C.逻辑非运算符(!)的优先级最低D.逻辑运算符的结果只能是0或1答案:A解析:逻辑与优先级高于逻辑或,操作数可以是多种类型,逻辑非优先级最高,结果是0或1。65.若有定义intarr[3][3]={{1,2,3},{4,5,6},{7,8,9}};则arr[2][1]的值是()A.7B.8C.9D.6答案:B解析:二维数组arr[2][1]是第三行第二个元素,值为8。66.以下关于函数重载的说法,在C语言中()A.可以实现函数重载B.函数名相同但参数不同就是函数重载C.C语言不支持函数重载D.函数重载可以提高程序效率答案:C解析:C语言不支持函数重载,函数重载是C++的特性。67.若有定义inta=10;则执行语句a+=5;后,a的值是()A.5B.10C.15D.20答案:C解析:a+=5等价于a=a+5,a变为15。68.以下关于字符串处理函数的说法,错误的是()A.strcat函数用于连接两个字符串B.strchr函数用于查找字符在字符串中第一次出现的位置C.strstr函数用于查找子字符串在字符串中第一次出现的位置D.这些函数都在<stdio.h>头文件中答案:D解析:字符串处理函数如strcat、strchr、strstr等在<string.h>头文件中,不在<stdio.h>中。69.若有定义int*p,arr[5]={1,2,3,4,5};p=arr;则*(p+1)的值是()A.1B.2C.3D.4答案:B解析:p指向数组首地址,p+1指向数组第二个元素,*(p+1)就是2。70.以下关于do-while循环和while循环的区别,说法正确的是()A.do-while循环至少执行一次,while循环可能一次都不执行B.do-while循环的条件判断在循环体之后,while循环的条件判断在循环体之前C.以上两者都是D.以上两者都不是答案:C解析:do-while循环先执行循环体再判断条件,至少执行一次;while循环先判断条件,可能一次都不执行。71.若有定义inta=3,b=5;则表达式!(a<b)的值是()A.0B.1C.3D.5答案:A解析:a<b为真,值为1,!1为假,值为0。72.以下关于数组初始化的说法,错误的是()A.可以只对数组部分元素初始化B.初始化列表中的元素个数可以超过数组大小C.若不初始化,数组元素的值是不确定的D.可以使用大括号对数组进行初始化答案:B解析:可以只对部分元素初始化,不初始化元素值不确定,可用大括号初始化,但初始化列表元素个数不能超过数组大小。73.若有定义int*p,a=10;p=&a;则p和&a的关系是()A.p和&a是不同类型B.p和&a的值相等C.p是变量a的值,&a是变量a的地址D.以上都不对答案:B解析:p是指针变量存储变量a的地址,&a是取变量a的地址,它们的值相等。74.以下关于条件判断语句的说法,正确的是()A.条件判断语句只能使用if语句B.switch语句只能判断整数类型的表达式C.条件判断语句的条件表达式只能是布尔类型D.条件判断语句可以嵌套使用答案:D解析:条件判断有if、switch等语句,switch可判断多种可转换为整数类型的表达式,条件表达式可以是多种类型,且可嵌套使用。75.若有定义intarr[4]={1,2,3,4};则sizeof(arr)的值是()A.4B.8C.16D.32答案:C解析:数组名代表整个数组,sizeof(arr)计算数组所占字节数,int通常占4字节,4个元素共16字节。76.以下关于函数嵌套调用的说法,正确的是()A.函数只能嵌套调用一次B.函数嵌套调用时,内层函数执行完才会继续执行外层函数C.函数嵌套调用会使程序效率变高D.函数嵌套调用只能是相同类型的函数答案:B解析:函数可多次嵌套调用,内层函数执行完才继续外层函数,嵌套调用不一定提高效率,可嵌套不同类型函数。77.若有定义inta=5,b=2;则表达式a%b+a/b的值是()A.1B.2C.3D.4答案:C解析:先计算a%b为1,a/b为2,相加得3。78.以下关于指针运算的说法,错误的是()A.指针可以进行加法运算B.指针可以进行减法运算C.指针可以进行比较运算D.指针可以和整数进行除法运算答案:D解析:指针可进行加、减、比较运算,但不能和整数进行除法运算。79.若有定义charstr[]="hello";则str[0]的值是()A.'h'B.'e'C.'l'D.'o'答案:A解析:字符数组下标从0开始,str[0]是第一个字符'h'。80.以下关于while循环的说法,正确的是()A.while循环的循环体可以为空B.while循环的条件表达式必须是常量C.while循环只能使用break语句跳出D.while循环不能和for循环嵌套答案:A解析:while循环体可以为空,条件表达式可以是变量或表达式,也可用continue语句,能和for循环嵌套。81.若有定义inta=8,b=3;则表达式a/b*b的值是()A.6B.8C.9D.不确定答案:A解析:整数相除8/3为2,再乘以3得6。82.以下关于结构体数组的说法,正确的是()A.结构体数组的元素只能是结构体类型B.结构体数组不能初始化C.访问结构体数组元素的成员只能用指针D.结构体数组的大小由第一个元素决定答案:A解析:结构体数组中的每个元素都是结构体类型,所以A正确;结构体数组可以像普通数组一样进行初始化,B错误;访问结构体数组元素的成员可以用“.”运算符,不只是指针,C错误;结构体数组的大小由元素个数和每个元素的大小共同决定,并非由第一个元素决定,D错误。83.若有定义inta=4,b=5;则表达式(a>b)?a++:b++的值是()A.4B.5C.6D.不确定答案:B解析:因为a>b为假,所以取冒号后面的值,即b的值5,然后b再自增。84.以下关于函数返回指针的说法,错误的是()A.函数可以返回指向局部变量的指针B.函数返回的指针类型要和函数定义的返回类型一致C.返回的指针可以指向动态分配的内存D.返回的指针可以指向全局变量答案:A解析:局部变量在函数执行结束后会被销毁,返回指向局部变量的指针会导致指针悬空,所以不能返回指向局部变量的指针;函数返回的指针类型要和定义一致,可指向动态分配的内存或全局变量。85.若有定义intarr[6]={1,2,3};则arr[5]的值是()A.0B.1C.3D.不确定答案:A解析:数组部分初始化时,未初始化的元素会自动初始化为0,所以arr[5]的值为0。86.以下关于for循环的执行流程,说法正确的是()A.先执行初始化部分,再判断条件,执行循环体,最后执行迭代部分B.先判断条件,再执行初始化部分,执行循环体,最后执行迭代部分C.先执行循环体,再判断条件,执行初始化部分,最后执行迭代部分D.先执行迭代部分,再判断条件,执行循环体,最后执行初始化部分答案:A解析:for循环的执行流程是先执行初始化部分,然后判断条件,若条件为真则执行循环体,最后执行迭代部分,如此循环。87.若有定义int*p,a=100;p=&a;则*&p的值是()A.100B.a的地址C.p的地址D.不确定答案:B解析:&p是取指针p的地址,*&p则是对p的地址进行解引用,得到的就是p存储的值,也就是a的地址。88.以下关于字符串输入输出的说法,错误的是()A.可以使用scanf函数输入字符串B.可以使用printf函数输出字符串C.使用scanf输入字符串时会自动添加字符串结束符D.使用gets函数输入字符串时会自动添加字符串结束符答案:C解析:scanf函数输入字符串时,遇到空格或换行符就会停止读取,不会自动添加字符串结束符;可以用scanf和printf进行字符串的输入输出,gets函数输入字符串时会自动添加字符串结束符。89.若有定义struct{intnum;charname[10];}s1={1,"Tom"},s2;s2=s1;则的值是()A."Tom"B.""C.地址值D.不确定答案:A解析:结构体变量可以整体赋值,s2=s1后,s2的成员和s1的成员值相同,所以的值是"Tom"。90.以下关于位运算的说法,正确的是()A.位运算只能用于整数类型B.位运算的优先级高于算术运算C.位运算的结果一定是布尔类型D.位运算不能用于负数答案:A解析:位运算是对二进制位进行操作,只能用于整数类型;位运算优先级低于算术运算;位运算结果是整数类型,不是布尔类型;位运算可以用于负数。91.若有定义intarr[3][2]={{1,2},{3,4},{5,6}};则*(arr[1]+1)的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论