C语言试题+源代码集.doc_第1页
C语言试题+源代码集.doc_第2页
C语言试题+源代码集.doc_第3页
C语言试题+源代码集.doc_第4页
C语言试题+源代码集.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

题目描述: 1.统计一个十进制正整数对应的二进制数中1的个数。输入数据及格式:正常输入数据应为一个十进制正整数n(0n100000);所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行;程序设计应当考虑可能存在非法输入(data.in文件为空、数据不合题意致使数据输入函数调用不成功)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束1表示文件打开失败(data.in文件不存在)2表示输入非法输出数据、格式及返回值:输出到标准设备;若文件打开失败则输出Error 1,然后函数返回值1;若输入非法则输出显示Error 2,然后函数返回值2;若输入正常,则输出该十进制正整数n和其对应的二进制数中1的个数(两者之间用一个冒号间隔),然后函数返回值0;输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 若在用户目录下找不到exam2.c,也得0分。输入数据示例1:1000输出结果示例1: 1000:6输入数据示例2:63输出结果示例2: 63:6注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#includeint main(void)int i, a, b = 0, c, m, n;FILE * fp = fopen(data1.in, r);if(fp = NULL)printf(Error 1n);return 1;if(fscanf(fp, %d, &a) != 1)printf(Error 2n);return 2;for(i = 20;i = 0;i-)if(ai)&1 = 1)b+;printf(%d:%dn, a, b);fclose(fp);return 0;题目描述:2.输出正整数开区间(a , b)内所有素数之和。(注:不包含a和b)。输入数据及格式:正常输入数据应为一行,即a b正整数a和b(0ab1000)之间有一个空格作为间隔符。输入数据行以回车换行符号n结尾,前后没有多余的空格和换行;所有输入数据均从数据文件data.in中读取;程序设计应当考虑可能存在非法输入(data.in文件为空或其中数据格式不符致使数据输入函数调用不成功,或者a和b取得的数据值不符合题意0ab1000)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备;若文件打开失败则输出 Error 1,然后函数返回值1;若输入非法则输出 Error 2,然后函数返回值2;若输入正常则直接输出(a,b)区间内所有素数之和,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:10 20输出结果示例1:60输入数据示例2:20 10输出结果示例2:Error 2注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#includeint han(int i)int j;if(i = 2)return 4;for(j = 2;j*j = b | a = 0 | b = 1000 | b = 1000)printf(Error 2n);return 2;for(i = a+1;ib;i+)if(han(i) = 4)mn = i;n+;for(i = 0;in;i+)sum = sum + mi;printf(%dn, sum);return 0;题目描述:3.计算数列2/1, 3/2, 5/3, 8/5,13/8的前n项之和,要求计算结果精确到小数点后2位。输入数据及格式:正常输入数据应该为一个整数n(0n232),以回车换行符号n结尾,前后没有多余的空格和换行;所有输入数据均从数据文件data.in中读取;程序设计应当考虑可能存在非法输入(data.in文件为空或其中数据格式不符致使数据输入函数调用不成功,或者取得的数据值不符合题意0n 232)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备;若文件打开失败则输出 Error 1,然后函数返回值1;若输入非法则输出 Error 2,然后函数返回值2;若输入正常则输出精确到小数点后2位的计算结果,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:2输出结果示例1:3.50输入数据示例2:232输出结果示例2:Error 2注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#includeint main(void)int n, i; double sum = 0.00, sum1 = 0.00, sum2 = 0.00;FILE *fp = fopen(data.in, r);if(fp = NULL)printf(Error 1n);fclose(fp);return 1;if(fscanf(fp, %d, &n) != 1 | n = 232 | n = 0)printf(Error 2n);fclose(fp);return 2;double an;a0 = 1;a1 = 2;a2 = 3;a3 = 5;if(n = 2)for(i = 0;i n;i+)sum += ai+1/ai;printf(%.*lfn, 2, sum);elsefor(i = 3;i n;i+)ai = ai-1 + ai-2;ai+1 = ai + ai-1;sum1 += ai+1/ai;sum2 = a1/a0 + a2/a1 + a3/a2;sum = sum1 + sum2;printf(%.*lfn, 2, sum);fclose(fp);return 0;题目描述:4.计算数列1/1,1/3 ,1/5 ,1/7,的前n项之和,计算结果精确到小数点后2位。输入数据及格式:正常输入数据应为一整数n(0n 232),以回车换行符号n结尾,前后没有多余的空格和换行。所有输入数据均从数据文件data.in中读取。 程序设计应当考虑可能存在非法输入(data.in文件为空或其中数据格式不符致使数据输入函数调用不成功,或者取得的数据值不符合题意0n 232)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备;文件打开失败则输出 Error 1,然后函数返回值1;输入非法则输出 Error 2,然后函数返回值2;输入正常则输出精确到小数点后2位的计算结果,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:3输出结果示例1:1.53输入数据示例2:232输出结果示例2:Error 2注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#includeint main(void)FILE *fp = fopen(data.in, r);int i, a;double b = 0;if(fp=NULL)printf(Error 1n);return 1;if(fscanf(fp, %u, &a)!=1)printf(Error 2n);return 2;if(a=232)printf(Error 2n);return 2;for(i = 1; i2*a; i+)if(i%2=1)b = b+(double)1/i;printf(%.2fn, (double)b);return 0;题目描述:5.编写函数CountOccur(str, ch),统计并返回字符ch在字符串str中出现的次数。编写main函数,从输入文件“data.in”中读入字符串str和字符ch,调用CountOccur(str, ch),输出ch在str中出现的次数。输入数据及格式:正常输入数据应为两行,第一行为字符ch,第二行为字符串str(长度小于80),即:ch str所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空或输入数据格式或个数不符致使输入函数调用不成功,或str长度超过80)。提示:由于输入可能含有空格字符,因此应该调用库函数fgets(str, 80, fp) 输入文件指针指向的字符串到字符数组str中。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备;若文件打开失败则输出 Error 1,然后函数返回值1;若输入非法则输出 Error 2,然后函数返回值2;若输入正常则输出调用字符出现次数检索统计函数得到的ch在str中出现的次数,然后函数返回值0;输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分2若程序输出正确但程序风格不规范,得6分3若程序输出错误,得0分4. 在用户目录下找不到exam2.c,也得0分输入数据示例1:a I am a student.输出结果示例1:2输入数据示例2:Hello输出结果示例2:Error 2输入数据示例3:a Hello输出结果示例3:0注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#include#includeint main(void)char m3, a80;int i, b;FILE*fp = fopen(data6.in,r);if(fp = NULL)printf(Error 1n);return 1;if(fgets(m, 3, fp) = NULL| strlen(m)1)printf(Error 2n);return 2;if(fgets(a, 80, fp) = NULL)printf(Error 2n);return 2;b = 0;for(i = 0;i80;i+)if(m0 = ai)b+;printf(%dn,b);fclose(fp);return 0;题目描述:6.编写函数Squeeze(str,ch),删除字符串str中所出现的与ch相同的字符。编写函数main,从输入文件“data.in”中读入字符串str和字符ch,调用函数Squeeze(str,ch),输出进行删除操作后的结果字符串。输入数据及格式:正常输入数据应为两行,第一行为字符ch,第二行为字符串str(长度小于80),即:ch str所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空或输入数据格式或个数不符致使输入函数调用不成功,或str长度超过80)。提示:由于输入可能含有空格字符,因此应该调用库函数fgets(str, 80, fp) 输入文件指针指向的字符串到字符数组str中。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中2main返回值含义如下0表示正常结束1表示文件打开失败(data.in文件不存在)2 表示输入非法输出数据、格式及返回值:输出到标准设备。若文件打开失败则输出 Error 1,然后函数返回值1;若输入非法则输出 Error 2,然后函数返回值2;若输入正常则输出调用删除字符函数得到的结果字符串,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:a I am a student.输出结果示例1:I m student.输入数据示例2:Hello输出结果示例2:Error 2输入数据示例3:a Hello输出结果示例3:Hello注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#include#includeint Squeeze(char str, char ch);int Squeeze(char str, char ch)int i;for(i = 0; i2)printf(Error 2n);return 2;/if(fgets(str, sizeof(str), fp)=NULL)if(fgets(str, sizeof(str), fp)=NULL|strlen(str)80|strlen(str)=1)printf(Error 2n);return 2;elseSqueeze(str, ch);return 0;题目描述:7.编写函数CopyPart(str1,m,str2),将字符串str1中第m个字符开始的全部字符复制成为字符串str2。编写函数main,从输入文件“data.in”中读入字符串str1和整数m,调用函数CopyPart(str1,m,str2),输出结果字符串str2。输入数据及格式:正常输入数据应为两行,第一行为整数m(0=m=str1的长度),第二行为字符串str1(长度小于80),即:mstr1所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空或输入数据格式或个数不符致使输入函数调用不成功,或str长度超过80,或m值不合题意)。提示:不允许调用复制字符串的库函数;由于输入可能含有空格字符,因此应该调用库函数fgets(str, 80, fp) 输入文件指针指向的字符串到字符数组str中。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备。若文件打开失败则输出 Error 1,然后函数返回值1;若输入非法则输出 Error 2,然后函数返回值2;若输入正常则输出调用字符串复制函数得到的结果字符串str2,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:3 Hello, world!输出结果示例1:lo, word!输入数据示例2:Hello输出结果示例2:Error 2输入数据示例3:a Hello输出结果示例3:Error 2注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#include#includeint main(void)char a80 = , c5 = ;int i, m, n;FILE* fp = fopen(data8.in, r);if(fp = NULL)printf(Error 1n);return 1;if(fgets(c, 5, fp) = NULL | c0 57)printf(Error 2n);return 2;if(fgets(a, 80, fp) = NULL)printf(Error 2n);return 2;m = strlen(c)-1;if(m = 1)n = c0-48;if(m = 2)n = 10*(c0-48)+c1-48;if(m2)printf(Error 2n);return 2;for(i = n-1;i = strlen (a)-1;i+)printf(%c, ai);fclose(fp);return 0;题目描述:8.编写函数Transfer(str),将字符串str中的所有字母大写变小写,小写变大写,其他字符保持不变。编写函数main,从输入文件“data.in”中读入字符串str,调用函数Transfer(str),输出大小写转换后的结果字符串str。输入数据及格式:正常输入数据应为一行字符串str(长度小于80)。 所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空致使输入函数调用不成功,或str长度超过80)。提示:不允许调用字符串大小写转换的库函数;由于输入可能含有空格字符,因此应该调用库函数fgets(str, 80, fp) 输入文件指针指向的字符串到字符数组str中。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中;2main返回值含义如下:0表示正常结束;1表示文件打开失败(data.in文件不存在);2 表示输入非法。输出数据、格式及返回值:输出到标准设备。文件打开失败则输出 Error 1,然后函数返回值1;输入非法则输出 Error 2,然后函数返回值2;输入正常则在屏幕输出进行大小写转换操作后的结果字符串str,然后函数返回值0。输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:Chapter 12输出结果示例1:cHAPTER 12注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#include#includeint main(void)char a80 = , t80 = ;int i, b, c, m, n;FILE*fp = fopen(data9.in, r);if(fp = NULL)printf(Error 1n);return 1;if(fgets(a, 80, fp) = NULL)printf(Error 2n);return 2;b = strlen (a)-1;for(i = 0;i= 65 & ai = 97 & ai =48 & ai = 57)ti = ai;for(i = 0;ib;i+)printf(%c, ti);fclose(fp);return 0;题目描述:9.编写程序,从输入文件“data.in”中读入某班n个学生信息,建立学生数据结构体,包括学号、姓名和三门课的成绩,计算输出该班各门课的平均分。输入数据及格式:正常输入应包含n+1行数据,第一行是学生个数n(1n60),其余n行是学生数据,每行中各数据之间有一个空格作为间隔符,即: n学生1学号 姓名 math成绩 English成绩 C_prog成绩学生2学号 姓名 math成绩 English成绩 C_prog成绩学生n学号 姓名 math成绩 English成绩 C_prog成绩学生的学号字符串(长度不超过10)和姓名字符串(长度不超过30)均不包含空格,3门课成绩均为整数(0=成绩=100)。所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空或输入数据不符致使输入函数调用不成功,或输入数据不合题意)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中2main返回值含义如下0表示正常结束1表示文件打开失败(data.in文件不存在)2 表示输入非法输出数据、格式及返回值:输出到标准设备。文件打开失败则输出 Error 1,然后函数返回值1;输入非法则输出 Error 2,然后函数返回值2;输入正常则按课程编号从小到大顺序逐行输出每门课程的名称、间隔符冒号、平均分(即“课程x:平均分”),平均分精确到小数点后一位,每门课程独占一行,全部输出完毕后函数返回值0。每行输出信息完毕即换行,输出行前后无其它多余的空格或换行。评分规则:1若程序输出正确并且程序风格规范,得10分;2若程序输出正确但程序风格不规范,得6分;3若程序输出错误,得0分;4. 在用户目录下找不到exam2.c,也得0分。输入数据示例1:32010001 Zhangshan 87 75 822010002 Lisi 90 88 842010003 Shenyang 75 78 72输出结果示例1:math:84.0English:80.3C_prog:79.3输入数据示例2:32010001 Zhangshan 87 75 82输出结果示例2:Error 2注:所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。源代码:#includestruct student char num10;char name30;int math;int English;int c_prog;st;int main(void)int i, k, n;float a, b, c;FILE*fp = fopen(data.in, r);if (fp = NULL)printf(Error 1n);return 1;if (fscanf(fp, %d, &n) != 1)printf(Error 2n);return 2;struct student stn;for (i = 0; i n; i+)if (fscanf(fp, %s %s %d %d %d, &sti.num, &, &sti.math, &sti.English, &sti.c_prog) != 5)printf(Error 2n);return 2; / yi shang shi shu ju du ru he fei fa du ru pan duan for (i = 0; i n; i+)a = a + sti.math; / qiu math de ping jun fen a = a / n;for (i = 0; i n; i+)b = b + sti.English;b = b / n;for (i = 0; i n; i+)c = c + sti.c_prog;c = c / n;printf(math: %.1fn, a);printf(English: %.1fn, b); / kong zhi shu chu yi wei xiao shu printf(c_prog: %.1fn, c);return 0; 题目描述:10.编写程序,从输入文件“data.in”中读入某班n个学生信息,建立学生数据结构体,包括学号、姓名和三门课的成绩,找出该班不及格课程多于一门的学生,并输出其学号、姓名和不及格课程的成绩。输入数据及格式:正常输入应包含n+1行数据,第一行是学生个数n(1n60),其余n行是学生数据,每行中各数据之间有一个空格作为间隔符,即: n学生1学号 姓名 math成绩 English成绩 C_prog成绩学生2学号 姓名 math成绩 English成绩 C_prog成绩学生n学号 姓名 math成绩 English成绩 C_prog成绩学生的学号字符串(长度不超过10)和姓名字符串(长度不超过30)均不包含空格,3门课成绩均为整数(0=成绩=100)。所有输入数据均从数据文件data.in中读取。输入数据文件中每行以回车换行符号n结尾,前后没有多余的空格和换行。程序设计应当考虑可能存在非法输入(data.in文件为空或输入数据不符致使输入函数调用不成功,或输入数据不合题意)。其它要求:1C源程序应命名为exam2.c并保存在自己的用户目录中2main返回值含义如下0表示正常结束1表示文件打开失败(data.in文件不存在)2 表示输入非法输出数据、格式及返回值:输出到标准设备。文件打开失败则输出 Error 1,然后函数返回值1输入非法则输出 Error 2,然后函数返回值2输入正常则按学号从小到大逐行输出不及格课程多于一门的学生学号、姓名、不及格课程名称与成绩,全部输出完毕后函数返回值0。(注意:每个学生独占一行,行中各数据之间有一个空格作为间隔符,但不及格课程名称与成绩之间用一个冒号间隔)。每行输出信息完毕即换行,输出行前后无

温馨提示

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

评论

0/150

提交评论