C语言复习要点及应用示例ssm18.ppt
《C语言复习要点及应用示例ssm18.ppt》由会员分享,可在线阅读,更多相关《C语言复习要点及应用示例ssm18.ppt(108页珍藏版)》请在冰豆网上搜索。
![C语言复习要点及应用示例ssm18.ppt](https://file1.bdocx.com/fileroot1/2022-10/6/dbf97ea8-3956-438d-9dd0-83ff7dc2acfd/dbf97ea8-3956-438d-9dd0-83ff7dc2acfd1.gif)
C语言程序设计,史树敏bitjsj_,复习,2,选择题,【1】一个语言程序是由组成的。
A)主程序B)子程序C)函数D)过程答案:
C【2】语言中char型数据在内存中是以形式存储。
A)原码B)补码C)反码D)ASCII码答案:
D【3】C的运算符按运算对象的数目可以分为。
A)单目算符一种B)单目和双目算符C)单目、双目和三目算符D)单目、双目、三目和四目算符答案:
C,3,选择题,【4】以下选项中属于C语言的数据类型是。
A)复数型B)逻辑型C)双精度型D)集合型答案:
C【5】设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是。
A)0至255B)0至65535C)-32768至32767D)-256至255答案:
B【6】inti;floatf;正确的语句是:
A.(intf)%iB.int(f)%iC.int(f%i)D.(int)f%i答案:
D,4,选择题,【7】已知:
charw;intx;floaty;doublez;则表达式w*x+z-y的结果为类型。
A)floatB)charC)intD)double答案:
D【8】下列可以正确表示字符型常数的是。
A)a“B)tC)nD)297答案:
B【9】已知:
inta,b;使用语句:
scanf(“%d%d”,&a,&b);输入a、b的值时,不能用作为输入分隔符的是。
A),B)空格C)回车D)Tab答案:
A,5,选择题,【10】下列运算符的操作数必须是int型的运算是A)%B)/C)-D)+答案:
A【11】已知:
char*s=tNameAddressn;则s所指的字符串的长度为A)19B)15C)18D)说明不合法答案:
B【12】与条件表达式“(n)?
(c+):
(c-)”中的表达式(n)等价的表达式是:
A.(n=0)B.(n=1)C.(n!
=0)D.(n!
=1)答案:
C,6,选择题,【12】为判断char型变量m是否是数字,可用表达式A)0=m&m=9B)0=m&m=9C)“0”=m&m=“9”D)前面三个答案均是错误的答案:
B【13】为求i的3次方,请选一个表达式填入使程序可正确执行。
#defineCUBE(x)(x*x*x)main()inti=4;printf(”n%d”,CUBE();A)i*i*iB)x*x*xC)xD)i答案:
D,7,选择题,【14】intx;逗号表达式“(x=4*5,x*5),x+25”的结果为A.20B.100C.45D.表达式不合法变量x的值是:
A.20B.100C.45D.125答案:
C/A【15】inta=1,b=2,m=2,n=2;(m=ab)则n的值是:
A.1B.2C.3D.4答案:
B,8,选择题,【16】可作为函数fopen中第一个参数的正确格式是A)c:
usertext.txtB)c:
usertext.txtC)c:
usertext.txtD)c:
usertext.txt“答案:
D【17】C对嵌套if的规定是:
else总是与配对。
A)其之前最近的ifB)第一个ifC)缩进位置相同的ifD)其之前最近的且尚未配对的if答案:
D,9,选择题,【18】若inti=10,则后,变量的结果是。
switch(i)case9:
i+=1;case10:
i+=1;case11:
i+=1;default:
i+=1;A)10B)11C)12D)13答案:
D【19】若:
inta34;则数组元素的非法引用是。
A)a02*1B)a13C)a4-20D)a04答案:
D,10,选择题,【20】对字符数组s赋值,不合法的一个:
A.chars=“Beijing”;B.chars20=“Beijing”;C.chars20;s=“Beijing”;D.chars20=B,e,i,j,i,n,j;答案:
C【21】以下4个关于C语言的结论中,错误的是。
A)用while语句实现的循环一定可用for语句实现B)用for语句实现的循环一定可用while语句实现C)用do-while语句实现的循环一定可用while语句实现D)do-while语句与while语句的区别仅是关键字while出现的位置不同答案:
D,char*s;s=“Beijing”;,11,选择题,【22】若有说明:
intb410,i,j,(且0=i4,0=j10),则对数组元素bij引用错误的是:
A.*(且0=i3,0=j5),则bij不正确的地址表示是:
A.&bijB.bi+jC.*(b+i)+jD.*(*(b+i)+j)答案:
D【24】若调用fputc函数输出字符成功,则返回值是_。
A)EOFB)1C)0D)输出的字符答案:
D,正确:
(*(b+i)j,12,选择题,【25】若a、b均为int型变量且a=100,则对以下for循环语句的正确判断是。
for(b=100;a!
=b;+a,b+)printf(-n);A)循环体只执行一次B)是死循环C)循环体一次也不执行D)输出-答案:
C【26】在C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的外部变量,则该变量需要使用的存储类别是_A)externB)registerC)autoD)static答案:
D,13,选择题,【27】若用数组名作为函数调用时的实参,则传递给形参的是_A)数组首地址B)数组的第一个元素值C)数组中全部元素的值D)数组元素的个数答案:
A【28】int(*ptr)M;其中标识符ptr是:
A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.指向具有M个整型元素的一维数组的指针D.具有M个指针元素的一维指针数组答案:
C,14,选择题,【29】char*p6;其中标识符p是:
A.指向char型变量的指针B.char型数组C.指针数组D.数组指针答案:
C【30】根据下面的定义,能打印出字母M的语句是:
structpersoncharname9;intage;structpersonclass10=John,17,Paul,19,Mary,18,“Adam,16;A.printf(%cn,class3.name);B.printf(%cn,class3.name1);C.printf(%cn,class2.name1);D.prlntf(%cn,class2.name0);答案:
D,15,写答案题,【1】写出程序的运行结果。
main()intx;x=try(5);printf(%dn,x);try(intn)if(n0)return(n*try(n-2);elsereturn
(1);答案:
15,16,写答案题,【2】写出程序的运行结果。
#includestdio.hstructcmplxintx;inty;cnum2=1,3,2,7;main()printf(%dn,cnum0.y*cnum1.x);答案:
6,17,程序选择填空题,【1】下面的程序是求数组中的最小元素,请选择填空。
findmin(int*s,intt,int*k)intp;for(p=0,*k=p;pt;p+)if(sps*k);main()inta10,i,*k=A)k=pB)*k=p-sC)k=p-sD)*k=p【1】答案:
D,18,程序填空题,【1】下面的函数是求1到n之和。
intadd(intx)if(n=1);elsereturn();【1】答案:
return
(1)n+add(n-1),19,程序填空题,【2】程序读入20个整数,统计非负数个数,计算非负数之和。
main()inti,a20,s,count;s=count=0;for(i=0;i20;i+)scanf(%d,);for(i=0;i20;i+)if(ai0);s+=ai;count+;printf(s=%dtcount=%dn,s,count);【2】答案:
&aicontinue,20,程序填空题,【3】下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其它依次类推。
fun(intx,intb)intk=0,r;dor=x%【1】;bk+=r;x/=【2】;while(x);【3】答案:
22,21,程序填空题,【4】已知:
任意一个正整数的立方都可以写成一串连续奇数的和。
例如:
13*13*13=2197=157+159+177+179+181main()longintn,i,k,j,sum;printf(Entern=);scanf(%ld,答案:
sumksum=kj-2,22,main()FILE*fp;intflag;charname30,data30;if(fp=fopen(try.dat,【】)=NULL)exit(0);doprintf(Entername:
);gets(name);if(strlen(name)=0)break;strcat(name,n);【】;flag=1;while(flag,A.r+B.w+C.a+D.w,a+,rewind(fp),!
=NULL,A.rewind(fp)B.fseek(fp,0,1)C.ftell(fp)D.空语句,A.!
=NULLB.=NULLC.!
=EOFD.=EOF,A.breakB.flag=0C.continueD.flag=-1,flag=0,A.ferror(fp)!
=0B.ferror(fp)=0C.flag=0D.flag=-1,ferror(fp)=0,A的行数,B的列数,条件:
A的行数与B的列数相同A的列数与B的行数相同,C00=A00B00+A01B10=17+210=27,C01=A00B01+A01B11=18+211=30,C02=A00B02+A01B12=19+212=33,C10=A10B00+A11B10=37+410=61,C22=A20B02+A21B12=59+612=117,计算两个矩阵A、B的乘积,24/41,#defineM3#defineP2#defineN3,for(i=0;iM;i+)/*输A数组*/for(j=0;jP;j+)scanf(“%d”,for(i=0;iP;i+)/*输B数组*/for(j=0;jN;j+)scanf(“%d”,aMPbPNcMN;,main()inti,j,k,s;intaMP,bPN,cMN;,计算两个矩阵A、B的乘积,25/41,for(i=0;iM;i+)for(j=0;jN;j+)printf(“%5d”,cij);printf(“n”);,for(i=0;iM;i+)/*生成C数组(A的行)*/for(j=0;jN;j+)/*B的列*/s=0;for(k=0;kP;k+)/*A的列*/s=s+aik*bkj;cij=s,aMPbPNcMN;,计算两个矩阵A、B的乘积,26/41,【1.1】,编程,输入n,输出如下例(n=6)所示的图形:
*,27,28,#includestdio.hmain()intn,j,i;printf(Pleaseinputnumber:
);scanf(%d,29,【1.2】,编程,输入n,输出如下例(n=6)所示的图形:
*,30,#includemain()inti,j,k,n;printf(nInputn=);scanf(%d,31,【1.3】,输入n,输出如下例(n=6)所示的高为n的等腰三角形。
*,32,main()inti,j,n;printf(nInputn=);scanf(%d,33,【1.4】,编程,输入n,输出如下例(n=6)所示的高为n的等腰三角形。
*,34,main()inti,j,n;pri