统计一行字符中单词的个数
- 格式:docx
- 大小:15.79 KB
- 文档页数:1
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
统计⽂件中出现的单词次数这⾥以kevin.txt⽂件内容(单词由⼀个或多个空格字符分隔)为例进⾏简单说明[root@centos6-test06 ~]# cat /root/kevin.txtthe world kevin is theis world grace the kevinart the kevin the is kevin统计kevin.txt⽂件中出现的单词次数第⼀种⽅法:结合grep和awk编写shell脚本脚本内容如下:[root@centos6-test06 ~]# cat count.sh#! /bin/bash# solution 1if [ $# -eq 0 ]thenecho "Usage:$0 args error"exit 0fiif [ $# -ge 2 ]thenecho "analyse the first file $1"fi#get the first filefilename=$1grep -E -o "\b[[:alpha:]]+\b" $filename | awk ' { count[$0]++ }END{printf("%-20s%s\n","Word","Count");for(word in count){printf("%-20s%s\n",word,count[word])}}'=======================================================================脚本参数说明:-eq: 等于-ne: 不等于-le: ⼩于等于-ge: ⼤于等于-lt: ⼩于-gt:⼤于\b backspace,printf参数awk说明awk由内容和动作组成;awk pattern {action}pattern可以是BEGIN、END、expression可以执⾏ for ( var in array ) statement1)BEGIN模块:这个模块包括了⼀个操作块(也就是"{ }"内的内容)。
第01套给定程序中功能是将形参n所指变量中各位上为偶数的数去除剩余的数按原来从高位到低位的顺序组成一个新的数并通过形参指针n传回所指变量。
例如输入一个数27638496新的数为739。
请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。
注意源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt void fununsigned long n unsigned long x0 i int t i1 whilen tn __1__ ift2 __2__ xxti ii10 n n /10 n__3__ main unsigned long n-1 whilengt99999999nlt0 printfquotPlease input0ltnlt100000000: quot scanfquotldquotampn funampn printfquotnThe result is: ldnquotn 解题思路第一处t是通过取模的方式来得到n的个位数字所以应填10。
第二处判断是否是奇数所以应填0。
第三处最后通形参n来返回新数x 所以应填x。
给定程序MODI1.C中函数fun 的功能是计算n。
例如给n输入5则输出120.000000。
请改正程序中的错误使程序能输出正确的结果。
注意不要改动main函数不得增行或删行也不得更改程序的结构给定源程序include ltstdio.hgt double fun int n double result 1.0 if n 0 return 1.0 while n gt1 ampamp n lt 170 result n-- return result main int n printfquotInput N:quot scanfquotdquot ampn printfquotnnd lfnnquot n funn 解题思路第一处条件语句书写格式错误应改为if n0。
2012年9月全国计算机考试上机题库100套第01套:给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n){ t=*n % __1__;if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); } fun(&n);printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
给定程序MODI1.C中函数fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>double fun ( int n ){ double result = 1.0 ;if n = = 0return 1.0 ;while( n >1 && n < 170 )result *= n--return result ;}main ( ){ int n ;printf("Input N:") ;scanf("%d", &n) ;printf("\n\n%d! =%lf\n\n", n, fun(n)) ;}解题思路:第一处:条件语句书写格式错误,应改为:if (n==0)。
C语言统计文件中的字符数、单词数以及总行数统计文件的字符数、单词数以及总行数,包括:每行的字符数和单词数文件的总字符数、总单词数以及总行数注意:空白字符(空格和tab缩进)不计入字符总数;单词以空格为分隔;不考虑一个单词在两行的情况;限制每行的字符数不能超过1000。
代码如下#include <stdio.h>#include <string.h>int *getCharNum(char *filename, int *totalNum);int main(){char filename[30];// totalNum[0]: 总行数totalNum[1]: 总字符数totalNum[2]: 总单词数int totalNum[3] = {0, 0, 0};printf("Input file name: ");scanf("%s", filename);if(getCharNum(filename, totalNum)){printf("Total: %d lines, %d words, %d chars\n", totalNum[0], totalNum[2], totalNum[1]);}else{printf("Error!\n");}return 0;}/*** 统计文件的字符数、单词数、行数** @param filename 文件名* @param totalNum 文件统计数据** @return 成功返回统计数据,否则返回NULL**/int *getCharNum(char *filename, int *totalNum){FILE *fp; // 指向文件的指针char buffer[1003]; //缓冲区,存储读取到的每行的内容int bufferLen; // 缓冲区中实际存储的内容的长度int i; // 当前读到缓冲区的第i个字符char c; // 读取到的字符int isLastBlank = 0; // 上个字符是否是空格int charNum = 0; // 当前行的字符数int wordNum = 0; // 当前行的单词数if( (fp=fopen(filename, "rb")) == NULL ){perror(filename);return NULL;}printf("line words chars\n");// 每次读取一行数据,保存到buffer,每行最多只能有1000个字符while(fgets(buffer, 1003, fp) != NULL){bufferLen = strlen(buffer);// 遍历缓冲区的内容for(i=0; i<bufferLen; i++){c = buffer[i];if( c==' ' || c=='\t'){ // 遇到空格!isLastBlank && wordNum++; // 如果上个字符不是空格,那么单词数加1isLastBlank = 1;}else if(c!='\n'&&c!='\r'){ // 忽略换行符charNum++; // 如果既不是换行符也不是空格,字符数加1isLastBlank = 0;}}!isLastBlank && wordNum++; // 如果最后一个字符不是空格,那么单词数加1isLastBlank = 1; // 每次换行重置为1// 一行结束,计算总字符数、总单词数、总行数totalNum[0]++; // 总行数totalNum[1] += charNum; // 总字符数totalNum[2] += wordNum; // 总单词数printf("%-7d%-7d%d\n", totalNum[0], wordNum, charNum);// 置零,重新统计下一行charNum = 0;wordNum = 0;}return totalNum;}在D盘下创建文件demo.txt,并输入如下的内容:运行程序,输出结果为:上面的程序,每次从文件中读取一行,放到缓冲区buffer,然后遍历缓冲区,统计当前行的字符和单词数。
第一套、1程序填空给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。
操作顺序是:首先将第一行元素的值存入临时数组r ,然后使第一列成为第一行,最后一行成为第一列,最后一列成为第一行,临时数组中和元素成为最后一列。
第1处t[0][N-j-1]=t[j][0];第2处for(j=N-1;j>=0;j--)第3处t[j][N-1]=r[j];2程序修改给定程序MODI1.C中函数fun的功能是:计算s=f(-n)+f(-n+1)+……+f(0)+f(1)+f(2)+……+f(n)的值。
例如,当n为5时,函数值应为:10.407143。
/*******found******/double f(double x){if(x==0.0||x==2.0)return 0.0;else if(x<0.0)return (x-1)/(x-2);elsereturn (x+1)/(x+2);}double fun(int n){ int i;double s=0.0,y;for(i=-n;i<=n;i++){ y=f(1.0*i);s+=y;}/*******found******/return s;}3程序设计编写函数fun,它的功能是计算:s=根号下(ln(1)+ln(2)+ln(3)+……ln(m))S作为函数返回,在C语言中可调用log(n)函数求ln(n)。
log函数的引用说明是:Double log(double x)例如,若m 的值为:20,fun函数值为:6.506583。
double fun(int m){double s=0.0;int i;for(i=0;i<=m;i++)s+=log(1.0*i);s=sqrt(s);return s;}第二套程序通过定义学生结构体变量,存储了学生学号,姓名和3门课的成绩。
所有学生数据均以二进制方式输出到文件中。
电子科技大学网络教育考卷(A 卷)(20 年至20 学年度第 学期)考试时间 年 月 日(120分钟) 课程 C 语言 教师签名_____一、单项选择题(每题2分,共30分) 1.以下描述正确的是( C )A .goto 语句只能用于退缩出多层循环。
B .switch 语句中不能出现continue 语句。
C .只能用continue 语句中来终止本次循环。
D .在循环语句中break 语句不独立出现。
2.一个C 程序的执行是从( A )A .C 程序的main 函数开始,到main 函数结束。
B .本程序的第一个函数开始,到本程序最后一个函数结束。
C .本程序的main 函数开始,到本程序文件的最后一个函数结束。
`D .本程序的第一个函数开始,到本程序main 函数结束。
3.C 语言中,要求运算数必须都是整数的运算符是( C )。
A.* B.- C.% D.+4.假定 int i=3,j=4; 执行语句: printf("%d,%d,%d\n",i+++j,i,j); 之后,其输出结果为:( C ) A.7,4,4 B. 8,4,4 C. 7,3,4 D.7,3,5 5.对break 语句的正确描述。
( A )A .break 语句在while 语句中,立即终止执行while 语句。
B .break 语句不能用于循环语句之外的语句。
C .break 语句与continue 语句功能相同。
D .b reak 语句可以带参数,也可以不带。
6.在C 语言中,下面那一个不是正确的概念( A )A. 所有循环语句都要求至少要执行一次循环体。
B. goto 和if 语句能构成循环语句。
C .循环过程只能包含,不能交叉。
D .循环体可以是一条语句。
7.以下对二维数组a 的正确说明是( C )A. int a[ 3 ] [ ]; B. float a( 3, 4); C. int a[ 3 ] [ 4 ] D.float a( 3, )( 4 ); 8.对函数的正确描述( C )A .在C语言中可以嵌套定义函数。
a 与b 合并成c85 填空 STYPE FILE fp 改错 for(i=0;i<=sl;i++) t[sl*2]='\0'; 将a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上。
4152*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;56 填空 *fw str str改错 void fun(long s,long *t) sl=sl*10; 将a 数的十位和个位数依次放在c 数的个位和百位上,b 数的十位和个位数依次放在c 数的千位和十位上。
1524*c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;22 填空 fp fclose(fp) fname改错 for(i=j+1;i<n;i++) p=i; 将a 数的十位和个位数依次放在c 数的个位和百位上,b 数的十位和个位数依次放在c 数的十位和千位上。
2514*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;33 填空 ”r ” fs ft改错 if(d%2==0) s/=10; 将a 数的十位和个位数依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的百位和个位上。
5142*c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10;83 填空 0 x t++改错 int i,sl; t[i]=s[sl-i-1]; 将a 数的十位和个位数依次放在c 数的百位和个位上,b 数的十位和个位数依次放在c 数的千位和十位上。
1425*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;80 填空 1 s i*10改错 int fun(int n,int xx[][M])printf("%d",xx[i][j]);将a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的个位和百位上。