1、=0)puts(s2);B.if(strcmp(sl,s2)!=0)puts(s1);C.if(strcmp(sl,s2)=1)puts(s1);D.if(strcmp(sl,s2)=0)puts(s1);(31)有以下程序:程序运行后的输出结果是( )。A.AfternoonB.ftemoonC.MorningD.oming(32)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:A.ab cd EFg!B.Ab Cd EFg!C.ab cd EFG!D.aB cD EFG!(33)有以下程序:A.0B.9C.6D.8(34)有以下程序:程序执行后的输出结果是
2、( )。A.55B.50C.45D.60(35)有以下结构体说明、变量定义和赋值语句:则以下scanf函数调用语句有错误的是( )。scanf(”s”,s0name);B.scanf(”d”, s0age);C.scanf(”c”, (ps一 sex);D.scanf(”d”,ps一 age):(36)若有以下语句:typedef struct Sint 9;char h;T;以下叙述中正确的是( )。A.可用s定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是struct S类型的变量A.1002,ZhangDa,12020B.1002,ChangRon9。1202
3、0C.1001,ChangRon9,10980D.1001,ZhangDa,10980(38)设有宏定义:#define IsDIV(k,n)(k11=1)?1:O)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5) IsDIV(m,7)为真时所要表达的是( )。判断m是否能被5和7整除B.判断m被5和7整除是否都余lC.判断m被5或者7整除是否余1D.判断m是否能被5或者7整除(39)有以下程序:A.3B.1C.2D.0(40)有以下程序:A.1 2B.1 4C.123 4D.123 456(21)B【解析】第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j =2条件成立,打
4、印i+j的值,即4;第二次执行内循环J的值为2,j =2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。(22)C【解析】k的值为5,逐个对caBe语句进行匹配,均不匹配,执行defau1t下的语句n=0;k一一。再执行case2:ca804:后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k 011 5条件判断
5、为真。第二次执行循环体,执行case3:后面的语句n+=1;再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:执行break语句跳出循环体。打印n的值5。此时n不满足条件k 0n 5,所以结束循环。整个程序的打印结果为235。(23)B【解析】在函数中允许有多个Iett1r11语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,c选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用
6、处,A、D选项描述错误。因此B选项正确。(24)A【解析】返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。(25)C【解析】A选项中错在没有对指针进行初始化,是无效指针,并且在scanf(”d”,p)中无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针;D选项中语句+P=k;的左端t pt是指针所指内存空间的值,k是地址,应为P=k。因此C选项正确。(26)B【解析】语句s=a;表示指针变量s指向一维数组a的首地址。a3表示引用数组a的第4个元素,+(s+i)表示引用指针8所指数组a的第i+1个元素,选项A、C、D的表示方法错误,只有B选项正确。(27)A【解析】
7、本题考查的是函数的地址调用,将数组名作为数组首地址进行传递,然后取首个数组元素值进行加1运算,循环5次。(28)C【解析】本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数40,这样对应定义fun函数首部有三种形式,这里采用了第一种形式行指针,这样在fun函数对sij进行操作实际上就是对主函数中的aij进行操作,再分析fun函数的作用便可知,是求二维数组第0列中的那个元素。(29)B【解析】A选项去掉大括号就正确了;c选项和D选项应在定义时赋初值。(30)B【解析】strcmp(s1,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符
8、相比(按照ASCI1码值大小),-以第一个不相同的字符的大小作为比较结果。因为。O。 10,所以strcmp(s1,s2)为负值,只有B选项正确。(31)A【解析】本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun()函数中,+P操作使形参P往后移动一个字符指针的位置,即指针a1的位置。故最后通过础nd()函数输出的字符串为“Afternoon”。(32)D【解析】调用缸函数后,实参数组名s1传给形参指针P,P也指向数组s1。m函
9、数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句Pi一1=Pi1一ga+-A;即Pi一1=Pi一1一32,意思是将Pi一1中的字符转换为大写。因此D选项正确。(33)C【解析】主函数中调用f函数,同时将数值3传递给变量x,执行条件不满足条件if(x=0I1X=1);跳过return(3);,直接执行语句Y=XXf(x一2);这里f(x一2)为函数的递归调用,再次诃用f函数,此时x=1,判断条件成立,返回3给f(1),Y=333=6,最后将6返回主函数,并进行输出。因此c选项正确。(34)D【解析】内部静态变量是始终存在的
10、,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。m(a,5)的值是15,再次调用后m=15,所以fun(b,4)=45,s=45+15=60。(35)D【解析】本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps一 age为一个变量,不是指针,所以错误。(36)B【解析】本题考查typ1edef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。(37)B【解析】本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。(38)B【解析1本题考查逻辑运算符的相关概念,逻辑与若要为真,那么两边都要为真,即m都能被5和7整除都余1,所以选项B正确。(39)A【解析】本愿考查位运算符以及相关运算,为按位或,为按位与,部么ab为3,再与c按位与仍然为3,所以答案为A选项。(40)D【解析】fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。执行两次fprintf后。文件中的内容为。123 456”,所以D选项正确。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1