C语言练习题、期末题、复试题_第1页
C语言练习题、期末题、复试题_第2页
C语言练习题、期末题、复试题_第3页
C语言练习题、期末题、复试题_第4页
C语言练习题、期末题、复试题_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、C语百技能试题1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。2、编程序,用getchar函数读放两个字符给cl、c2,然后分别用putchar函数和printf函数输出这两个字符。3、有一个函数xx<1J2x1<x<10y=、xx>10用scanf函数输入x的值(分别为x<1、110、>10三种情况),求y值。4、给一个百分制成绩,要求输出成绩等级A、B'、C'、D'、'E'。90分以上为A',

2、8189分为'B',7079分为'C',6069分为'D',60分以下为E'。5、给一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为321,应输出123。6、输入四个整数,要求按大小顺序输出。7、输入两个正整数,求其中最大公约数和最小公倍数。8、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。9、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第1

3、0天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少桃子。10、用选择法对10个整数排序。10个整数用scanf函数输入。11、有15个数存放在一个数组中,输入一个数,要求用折半查找法找了该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。12、将两个字符串连接起来,不要用strcat函数。13、找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。数组元素的值用赋初值方法在程序中指定。14、写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。15、用一个函数来实现

4、将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。16、用递归法将一个整数轮换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。17、求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一个函数根据求出的最大公约数求最小公倍数。(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。18、写一个函数,输入一个十六进制数,输出相应的十

5、进制数。19、定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。20、设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行内输出两上实数;(3)一行内输出三个实数。实数用“”格式输出。用一个文件包含以上用#3向3命令定义的格式。在自己的文件(自己命名)中用#include命令交文件包含进来。在程序中用scanf函数读入三个实数给fl、f2、f3。然后用上面定义的三种格式分别输出(1)fl,f2;(2)fl,f2,f3。21、用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如a变成b

6、',z变成'a'。其它字符不变)。用#6巾ne命令来控制是否要译成密码。例如:#defineCHANG1则输出密码。若#defineCHANG0则不译成密码,按原码输出。用条件编译方法来处理。22、输入三个整数,按由小到大的顺序输出,然后交程序改为:输入三个字符串,按由小到大顺序输出。(要求用指针处理)。素:厂1357911j131519.>23、得一个3X3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。(要求用指针处理)24、用一个函数实现两个字符串的比较,即自己写一个strcmp

7、函数:strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1ws2,返回它们二者第一个不同字符的ASCII码差值(如“BOY与“BAD,第二个字母不同,"O'与"A'之差为79-65=14);如果s1>s2,则输出正值;如果s1<s2则输出负值。两个字符串s1、s2由main函数输入,strcmp函数的返回值也在main函数输出。(要求用指针处理)25、用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写一个函数。N和各整数在主函数中输入。最后在主函数中输出。26、有5个学生,每个学生装的数据包括学号、姓名、三门课的成绩,从

8、键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课成绩、平均分数)。要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。27、13个人围成一个圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。28、建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。29、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门

9、课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。30、将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件"stu_sort"中。单项选择题:1 .(A)是构成C语言程序的基本单位。A、函数B、过程C、子程序D、子例程2 .C语言程序从C开始执行。A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main

10、()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5 .下列正确的标识符是(C)。A.-a1B.aiC.a2_iD.intt6 .下列C语言用户标识符中合法的是(B)。A)3axB)xC)caseD)-e2E)union7 .下列四组选项中,正确的C语言标识符是(C)。123A)%xB)a+bC)a123D)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。A、print_3dd

11、b8aBcC、str_1Cpppowwhile9.C语言中的简单数据类型包括(DA、整型、实型、逻辑型C、整型、字符型、逻辑型B、Iamone_halfstart$it3paiD、)°B、整型、实型、逻辑型、字符型D、整型、实型、字符型10.在C语言程序中,表达式A)2.5B)25%2的结果是CC)1D)311.如果inta=3,b=4;则条件表达式"a<b?a:b"的值是AA)3B)4C)0D)112 .若intx=2,y=3,z=4则表达式x<z?y:z的结果是(B).A)4B)3C)2D)0E)113 .C语言中,关系表达式和逻辑表达式的值是(B

12、)。A)0B)0或1C)1D)T或'F'14 .下面(D)表达式的值为4.A)11/3B)C)(float)11/3D)(int)(11.0/3+0.5)15 .设整型变量a=2,则执行下列语句后,浮点型变量b的值不为的是(A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16 .若“intn;floatf=13.8;",则执行"n=(int)f%3"后,n的值是(A)17 .以下对一维数组a的正确说明是:A)chara(10);B)inta;C)intk=5,ak;D)chara3=aT,b&

13、#39;,'c'18 .以下能对一维数组a进行初始化的语句是:(C)A.inta5=(0,1,2,3,4,)B.inta(5)=C.inta3=0,1,2D.inta5=10*119 .在C语言中对一维整型数组的正确定义为DqA)inta(10);B)intn=10,an;C)intn;an;D)#defineN10intaN;20、已知:inta10;则对a数组元素的正确引用是(D)。A、a10B、a3.5C、a(5)D、a021.若有以下数组说明,则i=10;aai元素数值是(B)。inta12=1,4,7,10,2,5,8,11,3,6,9,12;22.若有说明:inta

14、口3=1,2,3,4,5,6,7;则数组a的第一维的大小为:(BA.2B.3C.4D.无确定值57D)36923 .对二维数组的正确定义是(C)A.inta=1,2,3,4,5,6;B.inta2=1,2,3,4,5,6;C.inta3=1,2,3,4,5,6;D.inta2,3=1,2,3,4,5,6;24 .已知inta34;则对数组元素引用正确的是CA)a24B)a1,3C)a20D)a(2)(1)25 .C语言中函数返回值的类型是由A决定的.A)函数定义时指定的类型B)return语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型26 .在C语言中,函数的数据类型是指

15、(A)A函数返回值的数据类型B.函数形参的数据类型C调用该函数时的实参的数据类型D.任意指定的数据类型27 .在函数调用时,以下说法正确的是(B)A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文件里28 .在C语言中,表示静态存储类别的关键字是:(C)A)autoB)registerC)staticD)extern29 .未指定存储类别的变量,其隐含的存储类别为(A)。A)autoB)staticC)externD)register30 .若有以下说明语句:structstudentintnum;charnam

16、e;floatscore;stu;则下面的叙述不正确的是:(D)A. struct是结构体类型的关键字B. structstudent是用户定义的结构体类型C. num,score都是结构体成员名D. stu是用户定义的结构体类型名31 .若有以下说明语句:structdateintyear;intmonth;intday;brithday;则下面的叙述不正确的是C.A) struct是声明结构体类型时用的关键字B) structdate是用户定义的结构体类型名C) brithday是用户定义的结构体类型名D) year,day都是结构体成员名32 .以下对结构变量stul中成员age的非法引

17、用是Bstructstudentintage;intnum;stu1,*p;p=&stu1;8) student.ageC)p->ageD)(*p).age33 .设有如下定义:struckskinta;floatb;data;int*p;若要使P指向data中的a域,正确的赋值语句是CA)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;34 .设有以下说明语句:typedefstructstuinta;floatb;stutype;则下面叙述中错误的是(D)。A、struct是结构类型的关键字B、structstu是用户定义的结构

18、类型C、a和b都是结构成员名D、stutype是用户定义的结构体变量名35 .语句int*p;说明了C。A)p是指向一维数组的指针B)p是指向函数的指针,该函数返回一int型数据C)p是指向int型数据的指针D)p是函数名,该函数返回一指向int型数据的指针36 .下列不正确的定义是(A)。A.int*p=&i,i;B.int*p,i;C.inti,*p=&i;D.inti,*p;37 .若有说明:intn=2,*p=&n,*q=p,则以下非法的赋值语句是:(D)A)p=qB)*p=*qC)n=*qD)p=n38 .有语句:inta10,;则B是对指针变量p的正确定义和

19、初始化。A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;39 .若有说明语句“inta5,*p=a;",则对数组元素的正确引用是(C)。A.apB.paC.*(p+2)D.p+240 .有如下程序inta10=1,2,3,4,5,6,7,8,9,10,*P=a;则数值为9的表达式是BA)*P+9B)*(P+8)C)*P+=9D)P+841 .在C语言中,以D作为字符串结束标志A)'n'B)''C)0'D)'0'42 .下列数据中属于“字符串常量”的是(A)。A."a&q

20、uot;B.ABCC.'abc'0'D.'a'43 .已知charx尸"hello",y='h','e','a','b','e',则关于两个数组长度的正确描述是B.A)相同B)x大于yC)x小于yD)以上答案都不对44 .下面各函数中能实现打开文件功能的是AA)fopenB)fgetcC)fputcD)fclose45 .下列语句中,把变量fp说明为一个文件型指针的是(A)。A)FILE*fp;B)FILEfp;C)file*fp;D)filefp;46

21、.以读写方式打开一个已有的文本文件file1,并且FILE*fp,下面fopen函数正确的调用方式是(B)。A.fp=fopen(file1","r")B.fp=fopen(file1","r+")C.fp=fopen("file1","rb")D.fp=fopen(file1","w")读程序基本输入输出及流程控制1.#include<stdio.h>main()inta=1,b=3,c=5;if(c=a+b)printf("yesn&quo

22、t;);elseprintf("non");运行结果为:no2.#include<stdio.h>main()inta=12,b=-34,c=56,min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d",min);运行结果为:min=-343.#include<stdio.h>main()intx=2,y=-1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%nd”,z);运行结果为:54.#include<

23、stdio.h>main()floata,b,c,t;a=3;b=7;c=1;if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=t;if(b>c)t=b;b=c;c=t;printf("%5.2f,%5.2f,%5.2f",a,b,c);运行结果为:1.00,2.00,5.#include<stdio.h>main()floatc=3.0,d=4.0;if(c>d)c=5.0;elseif(c=d)c=6.0;elsec=7.0;printf(“%n.1”f,c);运行结果为:6.#include<std

24、io.h>main()intm;scanf("%d",&m);if(m>=0)if(m%2=0)printf("%disapositiveevenn",m);elseprintf("%disapositiveoddn",m);elseif(m%2=0)printf("%disanegativeevenn",m);elseprintf("%disanegativeoddn",m);若键入9,则运行结果为:-9isanegativeodd7.#include<stdio.h

25、>main()intnum=0;while(num<=2)num+;printf("%dn",num);运行结果为:1238.#include<stdio.h>main()intsum=10,n=1;while(n<3)sum=sum-n;n+;printf(“%d,%d”,n,sum);运行结果为:3,79.#include<stdio.h>main()intnum,c;scanf("%d",&num);doc=num%10;printf("%d",c);while(num/=10)

26、>0);printf("n");从键盘输入23,则运行结果为:3210#include<stdio.h>main()ints=0,a=5,n;scanf("%d",&n);dos+=1;a=a-2;while(a!=n);printf("%d,%dn",s,a);若输入的值1,运行结果为:2,111.#include"stdio.h"main()charc;c=getchar();while(c!='?')putchar(c);c=getchar();如果从键盘输入abcd

27、e?fgh(回车)运行结果为:abcde12.#include<stdio.h>main()charc;while(c=getchar()!=$)if(A<=c&&c<=Z)putchar(c);elseif(a<=c&&c<=z)putchar(c-32);当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD13.#include<stdio.h>main()intx,y=0;for(x=1;x<=10;x+)if(y>=10)break;y=y+x;printf(“%d%d”,y,x);

28、运行结果为:10514.#include<stdio.h>main()charch;ch=getchar();switch(ch)caseA:printf(“%c”,A);caseB:printf(“%c”,B);break;default:printf(“n%”s,”other”);当从键盘输入字母A时,运行结果为:AB15.#include<stdio.h>main()inta=1,b=0;scanf(“%d”,&a);switch(a)case1:b=1;break;case2:b=2;break;default:b=10;printf("%d&

29、quot;,b);若键盘输入5,运行结果为:1016.#include<stdio.h>main()_chargrade=C;switch(grade)caseA:printf(“9n0”);caseB:printf(“8n”0);caseC:printf(“7n0”);caseD:printf(“6n0”);break;caseE:printf(“n”<6);0default:printf(“errno”r!);运行结果为:70-8060-7017.#include<stdio.h>main()inty=9;for(;y>0;y-)if(y%3=0)pri

30、ntf(%d”,-y);continue;运行结果为:85218.#include<stdio.h>main()inti,sum=0;i=1;dosum=sum+i;i+;while(i<=10);printf(“%d”,sum);运行结果为:5519.#include<stdio.h>#defineN4main()inti;intx1=1,x2=2;printf("n");for(i=1;i<=N;i+)printf("%4d%4d",x1,x2);if(i%2=0)printf("n");x1=x1+x2;x2=x2+x1;运行结果为:1235813213420#include<stdio.h>main()intx,y;for(x=30,y=0;x>=10,y<10;x-,y+)x/=2,y+=2;printf(“x=%d,y=%dn”,x,y);运行结果为:x=0,y=1221.#include<stdio.h>#defineN4main()inti,j;f

温馨提示

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

评论

0/150

提交评论