C练习题汇总Word版_第1页
C练习题汇总Word版_第2页
C练习题汇总Word版_第3页
C练习题汇总Word版_第4页
C练习题汇总Word版_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!一、判断 变量根据其作用域的范围可以分作局部变量和全局变量. 答案:YC语言的switch语句中case后只能为整型或字符型常量或常量表达式 答案:Ywhile和dowhile循环不论什么条件下它们的结果都是相同的.答案:N逻辑表达式-5&!8的值为1.答案:N循环结构中的continue语句是使整个循环终止执行 答案:N若有说明int c;则while(c=getchar();是正确的C语句。答案:Y表达式 (j=3, j+) 的值是4.答案:NC语言中%运算符的运算对象必须是整型.答案:Y在C程序中 , 函数既可以嵌套定义 , 也可以嵌

2、套调用答案:Nint i=20;switch(i/10) case 2:printf(A); case 1:printf(B);的输出结果为A。答案:N两个字符串中的字符个数不相同时也可进行字符串大小的比较 答案:Ychar *p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。答案:N如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。答案:N如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。答案:YC语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Yint a34=1,5,9; 它的作用是将数组各行第一列的元素赋初值,其余元素值为

3、0。答案:YC语言的函数可以嵌套定义.答案:N函数strlen(ASDFGn)的值是7。答案:N二、单项选择 1、若有说明: int a34=0;则下面正确的叙述是()。A:只有元素a00可得到初值0B:此说明语句不正确C:数组a中各元素都可得到初值,但其值不一定为0D:数组a中每个元素均可得到初值0答案:D2、若有下列定义,则对a数组元素a2地址的正确引用是()。 int a5,*p=a;A:*(p+5)B:*p+2C:*(a+2)D:*&a5答案:C3、为表示关系xyz,应使用C语言表达式A:(x=y)&(y=z)B:(x=y) AND (y=z)C:(x=y=z)D:(x=z)&(y=z

4、)答案:A4、设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为A:floatB:intC:charD:double答案:D5、能正确表示逻辑关系: a10或a0 的C语言表达式是A:a=10 or a=0 | a=10 & a=10 | a=y&chb!=c和a(b!=c)的执行顺序是一样的B:!a!=(b!=c)表达式的值为1C:a|(b=c)执行后b的值为0D:a&bc的结果为假答案:B10、C语言规定,在一个源程序中,main函数的位置()。A:必须在最开始B:必须在系统调用的库函数的后面C:可以任意D:必须在最后答案:C11、下列字符序列中,不

5、可用作C语言标识符的是()。A:b70B:#abC:symbolD:a_1答案:B12、在C语言中,能代表逻辑值“真”的是()。A:TrueB:大于0的数C:非0整数D:非0的数答案:D13、任何一个C语言的可执行程序都是从_开始执行的.A:程序中的第一个函数B:main( )函数的入口处C:程序中的第一条语句D:编译预处理语句答案:B14、下列语句中,不正确的是()。A:char a2=1,2;B:int a2=1,2;C:char a2=1,2,3;D:char a2=1;答案:C15、若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。A:p1=&m;p2=&

6、p1B:p1=&m;p2=&n;*p1=*p2;C:p1=&m;p2=p1;D:p1=&m;*p2=*p1;答案:C16、在C语言中,调用函数除函数名外,还必须有()。A:函数预说明B:实际参数C:( )D:函数返回值答案:C17 、以下叙述中正确的是 ()。A:C程序中注释部分可以出现在程序中任意合适的地方B:花括号“和”只能作为函数体的定界符C:构成C程序的基本单位是函数,所有函数名都可以由用户命名D:分号是C语句之间的分隔符,不是语句的一部分答案:A18、变量p为指针变量,若p=&a,下列说法不正确的是()。A:&*p=&aB:*&a=aC:(*p)+=a+D:*(p+)=a+答案:D1

7、9、int a=3,b=2,c=1;if(abc)a=b;else a=c;则a的值为()。A:3B:2C:1D:0答案:C20、在以下给出的表达式中,与 do-while(E)语句中的(E)不等价的表达式是()。A:(!E=0)B:(E0|E0)C:(E=0)D:(E!=0)答案:C21、若用数组名作为函数的实参,传递给形参的是()。A:数组的首地址B:数组第一个元素的值C:数组中全部元素的值D:数组元素的个数答案:A22、putchar函数可以向终端输出一个()。A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D三、程序填空 共2题 (共计25分)第1题功能:从键盘

8、上输入一个正整数,判断其是否是回文数。说明:所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。 将整数的各位依次存入数组a中,然后再进行判断#include int main() int num,a10,r; int i=0,j,flag=1; /*flag作为是否为回文的标志*/ scanf(%d,&num); if (num=j;i-,j+) if (aj=ai) /*SPACE*/ 【?】; else flag=0; break; /*SPACE*/ if (【?】) printf(是回文n); else printf(不是回文n); return 0; 答案:=

9、(答案1)=ai=r=(答案2)=continue 或 flag=1=(答案3)=flag 或flag != 0或flag = 1=或=i0第2题 功能:用冒泡排序法对数组a 进行由小到大的排序。#include void fun(int a,int n) int i,j,t; /*SPACE*/ for (j=0; 【?】;j+) /*SPACE*/ for (i=0; 【?】;i+) /*SPACE*/ if(【?】) t=ai; ai=ai+1; ai+1=t; int main() int i,a10=3,7,5,1,2,8,6,4,10,9; /*SPACE*/ 【?】; for(i

10、=0;i10;i+) printf(%3d,ai); return 0;答案:=(答案1)=j=n-1或jn=(答案2)=in-j-1或iai+1=(答案4)=fun(a,10)第3题 (10.0分) 题号:76功能:找出数组中最大值和此元素的下标,数组元素的值由键盘 输入。#include void main() int a10,*p,*s,i; for(i=0;i10;i+) /*SPACE*/ scanf(%d, 【?】); /*SPACE*/ for(p=a,s=a;【?】=(答案4)=*s第4题 (15.0分) 题号:27功能:输出100到1000之间的各位数字之和能被15整除的所有

11、数, 输出时每10个一行。#include int main() int m,n,k,i=0; for(m=100;m0)或while(n!=0)或while(n)=(答案4)=printf(n)或puts(n)或putchar(n)第5题 功能:用函数调用方式,实现字符串的复制。#include void string_copy(char *str_from, char *str_to) int i=0; /*SPACE*/ for(; (*(【?】)=*(str_from+i)!=0; i+) ;int main() static char array_str120=i am a teac

12、her.; char array_str220; /*SPACE*/ 【?】(array_str1, array_str2); /*SPACE*/ 【?】(array_str2=%sn,array_str2); return 0;答案:=(答案1)=str_to+i=(答案2)=string_copy=(答案3)=printf第6题 功能:以下程序是用选择法对10个整数按从小到大顺序排序。说明:每一趟均找到未排好序的数中的最小数的位置,然后将其交换到正确的位置#include #define N 10int main() int i,j,k,t,aN; for(i=0;i=N-1;i+) sc

13、anf(%d,&ai); /*输入10个整数*/ for(i=0;iN-1;i+) /*SPACE*/ 【?】; /*SPACE*/ for(j=i+1; 【?】;j+) if(ajak) k=j; /*SPACE*/ if(【?】) t=ai; ai=ak; ak=t; printf(output the sorted array:n); for(i=0;i=N-1;i+) printf(%5d,ai); printf(n); return 0;答案:=(答案1)=k=i=(答案2)=jN或ji第7题 功能:打印出如下字母塔。最后一行字母前无空格 A BBB CCCCCDDDDDDD #in

14、clude int main() int i,j,k; /*SPACE*/ for(i=0;【?】;i+) for(j=0;j3-i;j+) printf( ); /*SPACE*/ for(k=1;k=【?】;k+) /*SPACE*/ printf(【?】); printf(n); return 0;答案:=(答案1)=i=3或i4=(答案2)=2*i+1=(答案3)=%c,A+i 或 %c, 65 + i第8题 功能:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。#include in

15、t main() int n,i,j; printf(Enter iNT number,with 0 to endn); i=j=0; scanf(%d,&n); while(n!=0) /*SPACE*/ if(n0)i=【?】; /*SPACE*/ if(n0)j=【?】; /*SPACE*/ scanf(%d,【?】); printf(i=%4dn,i,j); return 0;答案:=(答案1)=i + 1=(答案2)=j + 1=(答案3)=&n程序改错第1题 功能:求出数组中最大数和次最大数,并把最大数和a0中的数 对调、次最大数和a1中的数对调。#include #define

16、N 20void fun ( int a, int n ) int i, m, t, k ; for(i=0;i2;i+)/*两次循环,分别找最大数和次大数*/ /*FOUND*/ m=0; for(k=i;kam) k=m; t=ai;ai=am;am=t; int main( ) int bN=11,5,12,0,3,6,9,7,10,8, n=10, i; for ( i=0; in; i+ ) printf(%d , bi); printf(n); /*FOUND*/ fun (int bN, n); for ( i=0; iam) m=k;=(答案3)=fun(b,n);第2题 功能

17、:利用条件运算符的嵌套来完成此题:学习成绩=90分的同 学用A表示,70-89分之间的用B表示,60-69分之间的用C表示, 60分以下的用D表示。#include int main() int score; /*FOUND*/ char *grade; printf(please input a scoren); /*FOUND*/ scanf(%d,score); if (score100) printf(超出范围!); else /*FOUND*/ switch(score) case 9: case 10: grade=A; break; case 7: case 8: grade=B

18、; break; case 6: grade=C; break;/*FOUND*/ case else: grade=D; printf(%d belongs to %cn,score,grade); return 0;答案:=(答案1)=char grade;=(答案2)=scanf(%d,&score);=(答案3)=switch(score/10)=(答案4)=default:=或=case 0:case 1:case 2:case3:case 4:case 5:第2题 (15.0分) 题号:153/*- 【程序改错】-功能:编写函数求2!+4!+6!+8!。-*/#include in

19、t sum(int n) int i,j,t,s; /*FOUND*/ s=1; for(i=2;i=n;i=i+2) t=1; /*FOUND*/ for(j=1;j=n;j+) t=t*j; s=s+t; /*FOUND*/ return(t);int main() printf(this sum=%ldn,sum(8); return 0;答案:=(答案1)=s=0;=(答案2)=for(j=1;j=i;j+)=(答案3)=return s;第3题 (10.0分) 题号:92/*- 【程序改错】-功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数 返回二分之一的圆面积。例如:输入圆

20、的半径值:19.527 输出为:s = 598.950017。-*/#include #include /*FOUND*/double fun( r) double s; /*FOUND*/ s=1/2*3.14159* r * r; /*FOUND*/ return r;void main() float x; printf ( Enter x: ); scanf ( %f, &x ); printf ( s = %fn , fun ( x ) );答案:=(答案1)=double fun(double r)=(答案2)=s=1.0/2*3.14159* r * r;=或=s=0.5*3.1

21、4159* r * r;=(答案3)=return s;第4题 (15.0分) 题号:27/*- 【程序改错】-功能:求1到10的阶乘的和。-*/#include int main() int i; int s=0;/*FOUND*/ int fac(n); for(i=1;i=10;i+) /*FOUND*/ s=fac(i); printf(%dn,s); return 0;int fac(int n)/*FOUND*/ int y=0; int i; for(i=1 ;i=n;i+) y=y*i; /*FOUND*/ return;答案:=(答案1)=int fac(int n);=或=

22、int fac(int);=(答案2)=s= s + fac(i) ;=(答案3)=int y=1;=(答案4)=return y;第5题 (10.0分) 题号:161功能:输入n,计算s=1+1+2+1+2+3+1+2+3+4+.+1+2+3+4+.+n#includevoid main() /*FOUND*/ int i,s;p,n; printf(Enter n:n); /*FOUND*/ scanf(%d,n); s=p=0; /*FOUND*/ for(i=1;in;i+) p=p+i; s=s+p; printf(S= %dn,s);答案:=(答案1)=int i, s, p, n

23、 ;=(答案2)=scanf(%d,&n);=(答案3)=for(i=1;i=n;i+)第6题 (15.0分) 题号:41功能:输入10个数,要求输出这10个数的平均值#include double average(double array10) int i; double aver,sum=array0; /*FOUND*/ for(i=0;i10;i+) sum=sum+arrayi; aver=sum/10.0; return(aver);int main( ) /*FOUND*/ int score10,aver ; int i; printf(input 10 scores:n);

24、for(i=0;i10;i+) /*FOUND*/ scanf(%f, score); printf(n); /*FOUND*/ aver=average(score10); printf(average score is %5.2f,aver); return 0;答案:=(答案1)=for(i=1;i10;i+)=(答案2)=double score10,aver;=(答案3)=scanf(%f, &scorei);=或=scanf(%f, score+i);=(答案4)=aver=average(score);五、程序设计 第1题 功能:编写函数fun求一个字符串(长度不超过80)的长度

25、,在main函数中 输入字符串,并输出其长度。#include int fun(char *p1) /*Program*/ /* End */ int main() char *p,a80; int len; p=a; printf(please input a string:n); gets(p); len=fun(p); printf(The strings length is:%dn,len); /wwjt(); return 0;第2题 功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。#include int fun(int w) /*Progr

26、am*/ /* End */ int main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); return 0;第3题功能:编写函数fun求1!+2!+3!+ +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数。例如:若n值为5,则结果为153。 #includelong int fun(int n) /*Program*/ /* End */ int main() int n; long int result; scanf(%d,&n); result=

27、fun(n); printf(%ldn,result); return 0; 1一 月二 月三 月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合 计合 计合 计四 月五 月六 月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合 计合 计合 计下午13:0017:00B实行不定时工作制的员工,在保证完成甲方工作任务情况下,经公司同意,可自行安排工作和休息时间。312打卡制度3.1.2.1公司实行上、下班指纹录入打卡制度。全体员工都必须自觉遵守工作时间,实行不定时工作制的员工不必打卡。3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。3.1.2.

28、3打卡时间:打卡时间为上班到岗时间和下班离岗时间; 3.1.2.4因公外出不能打卡:因公外出不能打卡应填写外勤登记表,注明外出日期、事由、外勤起止时间。因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写未打卡补签申请表,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。上述情况考勤由各部门或分公司和项目文员协助人力资源部进行管理。3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、

29、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。3.1.2.9 外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司规定的休息日仍照常工作的情况。A现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次

30、。部门经理要严格审批员工排班表,保证员工有效工时达到要求。凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应说明理由,报主管副总和人力资源部审批。 B因员工月薪工资中的补贴已包括延时工作补贴,所以延时工作在4小时(不含)以下的,不再另计加班工资。因工作需要,一般员工延时工作4小时至8小时可申报加班半天,超过8小时可申报加班1天。对主管(含)以上管理人员,一般情况下延时工作不计加班,因特殊情况经总经理以上领导批准的延时工作,可按以上标准计加班。3.2.2.2员工加班应提前申请,事先填写加班申请表,因无法确定加班工时的,应在本次加班完成后3个工作日内补填加班申请表。加班申请表

31、经部门经理同意,主管副总经理审核报总经理批准后有效。加班申请表必须事前当月内上报有效,如遇特殊情况,也必须在一周内上报至总经理批准。如未履行上述程序,视为乙方自愿加班。3.2.2.3员工加班,也应按规定打卡,没有打卡记录的加班,公司不予承认;有打卡记录但无公司总经理批准的加班,公司不予承认加班。3.2.2.4原则上,参加公司组织的各种培训、集体活动不计加班。3.2.2.5加班工资的补偿:员工在排班休息日的加班,可以以倒休形式安排补休。原则上,员工加班以倒休形式补休的,公司将根据工作需要统一安排在春节前后补休。加班可按1:1的比例冲抵病、事假。3.2.3加班的申请、审批、确认流程3.2.3.1加

32、班申请表在各部门文员处领取,加班统计周期为上月26日至本月25日。3.2.3.2员工加班也要按规定打卡,没有打卡记录的加班,公司不予承认。各部门的考勤员(文员)负责加班申请表的保管及加班申报。员工加班应提前申请,事先填写加班申请表加班前到部门考勤员(文员)处领取加班申请表,加班申请表经项目管理中心或部门经理同意,主管副总审核,总经理签字批准后有效。填写并履行完审批手续后交由部门考勤员(文员)保管。3.2.3.3部门考勤员(文员)负责检查、复核确认考勤记录的真实有效性并在每月27日汇总交人力资源部,逾期未交的加班记录公司不予承认。下午13:0017:00度。全体员工都必须自觉遵守工作时间,实行不

33、定时工作制的员工不必打卡。3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。3.1.2.3打卡时间:打卡时间为上班到岗时间和下班离岗时间; 3.1.2.4因公外出不能打卡:因公外出不能打卡应填写外勤登记表,注明外出日期、事由、外勤起止时间。因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写未打卡补签申请表,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。上述情况考勤由各部门或分公司和项目文员协助人力资源部

34、进行管理。3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。3.1.2.9 外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司

35、规定的休息日仍照常工作的情况。A现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次。部门经理要严格审批员工排班表,保证员工有效工时达到要求。凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应说明理由,报主管副总和人力资源部审批。 B因员工月薪工资中的补贴已包括延时工作补贴,所以延时工作在4小时(不含)以下的,不再另计加班工资。因工作需要,一般员工延时工作4小时至8小时可申报加班半天,超过8小时可申报加班1天。对主管(含)以上管理人员,一般情况下延时工作不计加班,因特殊情况经总经理以上领导批准的延时工作,可按以上标准计加班。3.2.2.2员工加班

36、应提前申请,事先填写加班申请表,因无法确定加班工时的,应在本次加班完成后3个工作日内补填加班申请表。加班申请表经部门经理同意,主管副总经理审核报总经理批准后有效。加班申请表必须事前当月内上报有效,如遇特殊情况,也必须在一周内上报至总经理批准。如未履行上述程序,视为乙方自愿加班。3.2.2.3员工加班,也应按规定打卡,没有打卡记录的加班,公司不予承认;有打卡记录但无公司总经理批准的加班,公司不予承认加班。3.2.2.4原则上,参加公司组织的各种培训、集体活动不计加班。3.2.2.5加班工资的补偿:员工在排班休息日的加班,可以以倒休形式安排补休。原则上,员工加班以倒休形式补休的,公司将根据工作需要

37、统一安排在春节前后补休。加班可按1:1的比例冲抵病、事假。3.2.3加班的申请、审批、确认流程3.2.3.1加班申请表在各部门文员处领取,加班统计周期为上月26日至本月25日。3.2.3.2员工加班也要按规定打卡,没有打卡记录的加班,公司不予承认。各部门的考勤员(文员)负责加班申请表的保管及加班申报。员工加班应提前申请,事先填写加班申请表加班前到部门考勤员(文员)处领取加班申请表,加班申请表经项目管理中心或部门经理同意,主管副总审核,总经理签字批准后有效。填写并履行完审批手续后交由部门考勤员(文员)保管。3.2.3.3部门考勤员(文员)负责检查、复核确认考勤记录的真实有效性并在每月27日汇总交人力资源部

温馨提示

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

评论

0/150

提交评论