C语言程序设计课程期末复习练习参考.docx
- 文档编号:10634517
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:24
- 大小:70.92KB
C语言程序设计课程期末复习练习参考.docx
《C语言程序设计课程期末复习练习参考.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程期末复习练习参考.docx(24页珍藏版)》请在冰豆网上搜索。
C语言程序设计课程期末复习练习参考
C语言程序设计课程期末复习练习
一、单选题
1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
A.mainB.MAINC.nameD.function
2.每个C语言程序文件的编译错误分为()类。
A.1B.2C.3D.4
3.字符串"a+b=12\n"的长度为()。
A.6B.7C.8D.9
4.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。
A.forB.ifC.doD.while
5.在下面的do-while循环语句中,其循环体语句被执行的次数为()。
inti=0;doi++;while(i<10);
A.4B.3C.5D.10
6.将两个字符串连接起来组成一个字符串时,选用的函数为()。
A.strlen()B.strcap()C.strcat()D.strcmp()
7.若用数组名作为函数调用的实参,传递给形参的是()。
A.数组的首地址B.数组中第一个元素的值
C.数组中全部元素的值D.数组元素的个数
8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大()个字节。
A.4B.8C.16D.32
9.假定s被定义为指针类型char*的变量,初始指向的字符串为"Helloworld!
",若要使变量p指向s所指向的字符串,则p应定义为()。
A.char*p=s;B.char*p=&s;
C.char*p;p=*s;D.char*p;p=&s;
10.从一个数据文件中读入以换行符结束的一行字符串的函数为()。
A.gets()B.fgets()C.getc()D.fgetc()
11.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A.cppB.exeC.objD.c
12.设有两条语句为“inta=12;a+=a*a;”,则执行结束后,a的值为()。
A.12B.144C.156D.288
13.带有随机函数调用的表达式rand()%20的值在()区间内。
A.1~19B.1~20C.0~19D.0~20
14.for循环语句“for(i=0;i A.(n+1)/2B.n/2+1C.n/2-1D.n-1 15.在下列的字符数组定义中,存在语法错误的是()。 A.chara[20]="abcdefg";B.chara[]="x+y=55."; C.chara[15]={'1','2'};D.chara[10]='5'; 16.若有一个函数原型为“double*function()”,则它的返回值类型为()。 A.实数型B.实数指针型C.函数指针型D.数组型 17.在C语言中,所有预处理命令都是以()符号开头的。 A.*B.#C.&D.@ 18.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为()。 A.40B.30C.70D.10 19.若要使p指向二维整型数组a[10][20],则p的类型为()。 A.int*B.int**C.int*[20]D.int(*)[20] 20.表示文件结束符的符号常量为() A.eofB.EofC.EOFD.feof 21.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用()符号作为分隔符。 A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车 22.逻辑表达式(x>0&&x<=10)的相反表达式为()。 A.x<=0||x>10B.x<=0&&x>10 C.x<=0||x<=10D.x>0&&x>10 23.当处理特定问题时的循环次数已知时,通常采用()循环来解决。 A.forB.whileC.do-whileD.switch 24.假定i的初值为0,则在循环语句“while(i A.n-1B.nC.n+1D.n/2 25.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。 A.2B.4C.6D.8 26.在下列选项中,不正确的函数原型格式为()。 A.intFunction(inta);B.voidFunction(char); C.intFunction(a);D.voidint(double*a); 27.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大()个字节。 A.1B.2C.4D.8 28.假定有定义为“intm=7,*p;”,则给p赋值的正确表达式为()。 A.p=mB.p=&mC.*p=&mD.p=*m 29.假定指针变量p定义为“int*p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。 A.free(p)B.delete(p)C.free(*p)D.free(&p) 30.C语言中的系统函数fopen()是()一个数据文件的函数。 A.读取B.写入C.关闭D.打开 参考解答: 1.A2.B3.B4.B5.D 6.C7.A8.C9.A10.B 11.B12.C13.C14.A15.D 16.B17.B18.A19.D20.C 21.D22.A23.A24.B25.C 26.C27.C28.B29.A30.D 二、填空题 1.C语言中的每条简单语句以________作为结束符。 2.C程序中的所有预处理命令均以______字符开头。 3.当不需要函数返回任何值时,则应使用________标识符来定义函数类型。 4.十进制数25表示成符合C语言规则的十六进制数为________。 5.假定不允许使用逻辑非操作符,则逻辑表达式a>b||b==5的相反表达式为________________。 6.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方也可以使用__________来定义整型变量。 7.假定一维数组的定义为“char*a[8];”,则该数组所占存储空间的字节数为________。 8.假定二维数组的定义为“doublea[M][N];”,则该数组的列下标的取值范围在_________之间。 9.存储一个空字符串需要占用________个字节。 10.strcpy函数用于把一个字符串________到另一个字符数组空间中。 11.程序的编译单位是一个__________。 12.假定a是一个一维数组,则a[i]的指针访问方式为________。 13.执行int*p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为________。 14.执行“printf("%c",'A'+2);”语句后得到的输出结果为________。 15.shortint类型的长度为________。 16.用类型关键字表示十进制常数3.26f的类型为________。 17.假定y=10,则表达式++y*3的值为________。 18.逻辑表达式(x==0&&y>5)的相反表达式为________。 19.若x=5,y=10,则x! =y的逻辑值为________。 20.假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为________。 21.使用“typedefcharBB[10][50];”语句定义________为含有10行50列的二维字符数组类型。 22.字符串"a: \\xxk\\数据"的长度为________。 23.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为________。 24.假定一个数据对象为int*类型,则指向该对象的指针类型为_______。 25.假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的长度为________。 26.假定要访问一个结构对象x中的数据成员a,则表示方式为____________。 27.用于输出表达式值的标准输出函数的函数名是________。 28.每个C语言程序文件在编译时可能出现有致命性错误,其对应的标识符为________。 29.已知'A'~'Z'的ASCII码为65~90,当执行“intx='C'+3;”语句后x的值为________。 30.表达式(int)14.6的值为________。 31.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为___________。 32.假定x=5,则执行“a=(x? 10: 20);”语句后a的值为________。 33.假定一维数组的定义为“char*a[M];”,则该数组所占存储空间的字节数为________。 34.存储字符串"a"需要至少占用存储器的________个字节。 35.strlen()函数用于计算一个字符串的________。 36.在C语言中,一个函数由函数头和__________这两个部分组成。 37.假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式*(p++)后,p所指对象的值为________。 38.假定p是一个指向整数对象的指针,则用________表示指针变量p的地址。 39.与结构成员访问表达式p->name等价的访问表达式为____________。 参考解答: 1.;(或分号)2.#3.void4.0x19 5.a<=b&&b! =56.DataType7.328.0~N-1 9.110.拷贝(复制)11.程序文件12.*(a+i) 13.*p14.C15.216.float 17.3318.(x! =0||y<=5)或: (x||y<=5) 19.120.6021.BB22.11 23.4624.int**25.1226.x.a 27.printf28.error29.7030.14 31.x+y<=532.1033.4*M34.2 35.长度360.函数体37.4638.&p 39.(*p).name 三、写出下列每个程序运行后的输出结果 1.#include voidmain() { intx=5; switch(2*x-1){ case4: printf("%d",x);break; case7: printf("%d",2*x);break; case10: printf("%d",3*x);break; default: printf("%s","default"); } printf("%s\n","switchend."); } 2.#include voidmain(){ intf1,f2,i; f1=1; printf("%d",f1); for(i=2;i<=5;i++){ f2=3*f1+1; printf("%d",f2); f1=f2; } printf("\n"); } 3.#include voidmain(){ inta[10]={12,39,26,41,55,63,72,40,83,95}; inti,i1=0,i2=0; for(i=0;i<10;i++) if(a[i]%2==1)i1++;elsei2++; printf("%d%d\n",i1,i2); } 4.#include #include voidmain(){ chars[15]="567891234"; inti,n=strlen(s); for(i=0;i charc=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c; } printf("%s\n",s); } 5.#include intLB(int*a,intn){ inti,s=1; for(i=0;i returns; } voidmain(){ inta[]={1,2,3,4,2,4,5,2}; intb=LB(a,4)+LB(a+3,3); printf("b=%d\n",b); } 6.#include voidmain(){ inti,s=0; for(i=1;i<6;i++)s+=i*i; printf(“s=%d\n”,s); } 7.#include #defineN6 voidmain() { inti,a[N]={2,5,8,10,15,21}; for(i=0;i if(a[i]%5)printf("%d",a[i]); printf("\n"); } 8.#include #include voidmain(){ inti; unsignedintlen; char*a[5]={"student","worker","cadre","soldier","zzeasan123"}; len=strlen(a[0]); for(i=1;i<5;i++) if(strlen(a[i])>len)len=strlen(a[i]); printf("%d\n",len); } 9.#include voidmain() { inta,b; for(a=2,b=3;b<20;){ printf("%d%d",a,b); a=a+b; b=a+b; } printf("%d%d\n",a,b); } 10.#include voidLE(int*a,int*b){ intx=*a; *a=*b;*b=x; } voidmain(){ intx=15,y=26; printf("%d%d\n",x,y); LE(&x,&y); printf("%d%d\n",x,y); } 11.#include voidmain(){ inti,s=0; for(i=1;;i++){ if(s>30)break; if(i%2==0)s+=i; } printf("s=%d\n",s); } 12.#include voidmain(){ inta[9]={36,25,48,24,55,40,18,66,20}; inti,b1,b2; b1=b2=a[0]; for(i=1;i<9;i++){ if(a[i]>b1)b1=a[i]; if(a[i] } printf("%d%d\n",b1,b2); } 13.#include voidSB(charch){ switch(ch){ case'A': case'a': printf("WW");break; case'B': case'b': printf("GG");break; default: printf("BB");break; } } voidmain(){ chara1='a',a2='B',a3='f'; SB(a1);SB(a2);SB(a3); printf("\n"); } 14.#include #defineM6 voidmain() { inti,x; inta[M]={10,15,22,37,46,58}; for(i=0;i for(i=0;i<6;i++)printf("%d",a[i]); printf("\n"); } 15.#include structWorker{ charname[15];intage;floatpay; }; voidmain(){ structWorkerx={"wanghua",52,2350}; structWorkery,*p; y=x;p=&x; printf("%d%7.2f\n",y.age+p->age,p->pay+20); } 16.#include voidmain(){ inti,j,k=0; for(i=0;i<5;i++) for(j=i;j<5;j++)k++;; printf("%d\n",k); } 17.#include voidmain() { intx=60; inti=2,p=1; while (1){ if(x%i==0){p*=i;x/=i;} if(i } printf("%d\n",p); } 18.#include voidmain(){ inta[8]={76,63,54,62,40,75,90,58}; inti; for(i=0;i<8;i++) if(a[i]>70)printf("%d",a[i]); printf("\n"); } 19.#include voidWF(intx,inty){ x=x+y; y+=x; printf("%d%d\n",x,y); } voidmain(){ intx=3,y=8; WF(x,y); } 20.#include intLA(int*a,intn){ inti,s=0; for(i=0;i returns; } voidmain(){ inta[5]={3,4,6,10,20}; intb=LA(a,5); intc=LA(a+2,3); printf("%d%d\n",b,c); } 参考解答: 1.defaultswitchend. 2.141340121 3.64 4.432198765 5.b=56 6.s=55 7.2821 8.10 9.23581321 10.1526 2615 11.s=42 12.6618 13.WWGGBB 14.584637221510 15.1042370.00 16.15 17.30 18.767590 19.1119 20.4336 四、写出下列每个函数的功能 1.#include intSG(intx){//x为大于等于2的整数 inta=(int)sqrt(x);//sqrt(x)取x的平方根 inti=2; while(i<=a){ if(x%i==0)break; i++; } if(i<=a)return0;elsereturn1; } 2.intFindMax(structIntNode*f)//f为一个单链表的表头指针 { intx; if(! f){printf("单链表为空\n"),exit (1);} x=f->data; f=f->next; while(f){ if(f->data>x)x=f->data; f=f->next; } returnx; } 假定structIntNode的类型定义为: structIntNode{intdata;structIntNode*next;}; 3.#include intSA(inta,intb){ if(a>b)return1; elseif(a==b)return0; elsereturn-1; } 4.voidOutput(structIntNode*f)//f为单链表的表头指针 { if(! f)return; while(f){ printf("%d",f->data); f=f->next; } printf("\n"); } 假定structIntNode的类型定义为: structIntNode{intdata;structIntNode*next;};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程 期末 复习 练习 参考
![提示](https://static.bdocx.com/images/bang_tan.gif)