《齐齐哈尔大学2022年C语言专升本.docx》由会员分享,可在线阅读,更多相关《齐齐哈尔大学2022年C语言专升本.docx(47页珍藏版)》请在第壹文秘上搜索。
1、2022年C语言专升本(一)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、根据数制的基本概念,下列各进制的整数中,值最大的一个是OA、十六进制数10B、十进制数10C、八进制数10D、二进制数102、以下不能定义为用户标识符的是OA、 scanfB、 VoidCx_3com_D、int3、在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式A、只能用逻辑表达式B、只能用关系表达式C、只能用逻辑表达式或关系表达式D、可用任意表达式4、若有以下程序段,w和k都是整型变量:w=k;1.B:if(w=0)gotoLE;w一;printf(,*r,)gotoLB
2、;1.E;则不能与上面程序段等价的循环语句是A、for(w=k;w!-0;w)printf(,*w);B、for(w=k;W;w)printf(,*”);C、 w=k;while(w-!=0)printf(,*);D、 w=k:W+;dow;Printf(*);)while(w!=0);5、若定义a=3,b=4,执行printf(A、3, 4B、4, 3C、3, 3D、4, 46、下列数据中,不合法的C语言实型数据的是 oA、0. 123 123e3C、2. Ie3. 5D、789.07、有语句 Char strl 10, str210 = wchinaw;则能将字符串China赋给数组Str
3、l的正确语句是。A、strl=,china,;B、 strcpy(strl,str2); strl=str2; strcpy(str2,strl);8、下面关于形参与实参的说法,正确的是 oA、形参与实参的个数、类型、顺序都应一一对应B、形参与实参的个数可以不必相同,少一个多一个程序一样执行C、形参与实参的类型可以不同,不影响运算结果D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所 以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可9、下面正确的字符串常量是 oA. ,aB、 376C. ,ntt%d,%dw,(a,b),(b,a);的输出结果为D、37610、以下能
4、对一维数组a进行初始化的语句是:()A、inta5(0,1,2,3,4,)B、inta(5)=C、inta3=0,1,2D、inta5=10*l11、有以下程序:intf(intn)if(n=1)return1;elsereturnf(n-l)+l;)main()inti,j=0;for(i=l;i3;i+)j+=f(i);printf(,%dnw,j);程序运行后的输出结果是。A、4B、3C、2D、112、按照数的进位制概念,下列各个数中正确的八进制数是A、 1101B、 7081C、 1109D、 B03A13、若intx,*p;则正确的赋值表达式是。A、 P=&xB、 p=x;C、 *p
5、-&x;D、 *p=*x14、下面哪个不是关键字?A、intB、 structC、 defineD、 continue15、下列程序的输出结果是()。main()inta=7,b=5;printf(r,%dn,b=ba);A、0B、5C、1D、不确定值16、语句for(k=0;k5;+k)if(k=3)continue;printf(,%dn,k);的输出结果为A、012B、 0124C、 01234D、没有输出结果17、下列关于共用体类型变量的描述中,正确的是A、可以对共用体变量直接赋值B、一个共用体变量可以同时存放其所有的成员C、一个共用体变量中不可以同时存放其所有的成员D、共用体类型定义
6、中,不能出现结构体类型的成员18、有以下程序:main()intx,i;for(i=l;i=0);6、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如a变成/,U变成b。请在内填入正确的内容。#includevoidmain()(charc;c=getchar();if(c三,a,&c三,v,&c=,z);putchar(c);)7、读取文件的函数名是1L8、C语言中,一个函数一般由两个部分组成,它们是和函数体。9、写出下列程序的运行结果。#includewstdio.hwmain()(i11ta=l,2t3,-4,5);intm,n,*p;p=&a0;m=*(p+l);n=*(
7、p+4);printf(,%d%d%dw,*p,m,n);)10、下面程序的运行结果是oftincludemain()(inty=2,a=l;while(y-!=T)(do(a*=y;a+;)while(y一);)Printf(%d,%d,a,y);)三、编程题(每小题分,共40分)1、请编写一个函数proc(),它的功能是:求出lm(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7,11,14,21,22,28,33,35,42,44,49,55,56,63,66,70注意:部分源程序给出如下。请勿改动main()函数和其他函数中
8、的任何内容,仅在函数PrOC()的花括号中填人所编写的若干语句。试题程序:defineN100voidproc(intm,int*a,int*n)voidmain()intarrN,n,k;system(nclsn);proc(70,arr,&n);for(k=0;kN;K+)if(k+l)%20=0)每行输出20个数(printf(,%4dr,arrk);printf(,nr,);)elseprintf(,%4dM,arrk);printf(,nn);)(本题10分)2、编写程序:用getchar函数读入两个字符给cl、c2,然后分别用putchar函数和Printf函数输出这两个字符。ft
9、includevoidmain()(charcl,c2;Printf(请输入两个字符给cl和c2:nw);Printf(用putchar函数输出结果为:n);printf(,n用printf函数输出结果为:r);)(本题14分)3、输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n随后n行,每行按照“姓名生日电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符
10、串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang1985040313912345678wang19821020+86-0571-88018448qian1984061913609876543输出样例:wang19821020+86-0571-88018448qian1984061913609876543zhang1985040313912345678(本题16分)参考答案一、单项选择题1、A【解析】分别将四个数转换为十进制为16,10,8,2。2、D3、D4、C5、B【解析】在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符d要求输出项内容以十进制
11、整数形式输出,第一个输出项(a,b)是一个逗号表达式,该表达式的是b的值,输出4;第二个输出项(b,a)的值是a的值,输出3。6、C【解析】在C语言中,实数有两种表示形式。即十进制数形式和指数形式,在指数形式中,字母e的前面必须有数字,且e的后面必须是整数。e3,2.1e3.5,e3,e等都是不合法的指数形式,而123e3或123E3都代表123乘以10的3次方。7、B8、A【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件的,如果浮点型变量向指针型变量转换就是不可的。9、C10、C11、B【解析】第一次调用f()函数,返回值为1,第二次调用f()函数,牵涉到函数的递归调用,
12、返回值为2。12、A【解析】八进制的数字为07。13、A14、C16、B17、C18、C19、D【解析】考查字符数组的定义和初始化。解题要点数组a中最后一个元素是字符串结束标识,(y,所以a数组长度为7,而b数组长度为6,所以答案为D)。考点链接通过赋初值的方式给一维字符数组赋字符串。20、A【解析】共用体UU占8个字节;因为结构体在内存中占位符的存在,所以结构体test中成员m2占4个字节;结构体test占用内存的大小是sizeof(int)+sizeof(char)+3+sizeof(float)+sizeof(ua)=20。二、填空题1、22、%f3、654、 Illll5、3次6、c=c+5c=c-21【解析】根据ASCn码规律,要使字母循环后移5位输出,从a-u均不存在问题,但字母v(ASCII码值为118)后移5位,则ASCII值为123,不是循环到a(ASCII值为97),从而须执行C=C-21。7、fread8、函数首部9、12510、1,-2二、编程题1、voidproc(intm,int