C语言统计字符串中长度最长的单词,并输出单词
综合实验(2)任务书
计算机基础综合实验(2)任务书一、综合实验目的C语言程序设计是本科工科类各专业的重要基础课,主要学习程序设计的基本概念和方法,通过本门课程学习,使学生掌握C语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。
综合实验是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。
并为参加计算机等级考试做准备。
二、综合实验的基本内容和要求参加综合实验的学生,应当认真完成综合实验的全部内容。
最终提交综合实验成果来证明其独立完成各种实际任务的能力。
从而反映出理解和运用本课程知识的水平和能力。
具体如下:1、代码编写规范,形成良好的编程习惯;2、程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。
3、提交综合实验报告电子稿、装订的打印稿。
综合实验报告内容包括以下几个方面:●程序的总体设计和算法分析。
●程序流程图、函数说明●源程序代码清单●测试数据和测试过程记录●遇到的问题及解决方法分析●综合实验小结4. 程序运行方式构建一个简易菜单,形如:用户通过输入数值选择所需运行的子程序,当一个子程序运行结束后回到菜单界面,直至用户输入0后退出程序。
三、综合实验的进度安排熟悉指针、结构体、文件内容1天整体设计和详细设计、编代码1天编代码、调试和测试1天综合实验报告书写1天演示软件1天四、综合实验的考核评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的综合实验报告,严格检查以下各项任务完成情况:1、设计文档中要求项目是否齐全。
2、程序中运行时的屏幕提示信息是否准确:如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。
3、问题和任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。
c语言计算字符串长度的几种方法
c语言计算字符串长度的几种方法在C语言中,计算字符串长度的几种方法包括:1. 使用标准库函数strlen(。
这是最常见和简单的方法,只需要包含<string.h>头文件,并使用strlen(函数即可。
例如:```c#include <stdio.h>#include <string.h>int maichar str[] = "Hello, world!";int len = strlen(str);printf("The length of the string is: %d\n", len);return 0;```2.使用循环遍历字符串。
可以使用循环结构,从字符串的第一个字符开始,依次遍历到字符串的结束标志'\0',并记录经过的字符数。
例如:```c#include <stdio.h>int maichar str[] = "Hello, world!";int len = 0;while (str[len] != '\0')len++;}printf("The length of the string is: %d\n", len);return 0;```3.使用指针算术运算。
可以使用指针的增减运算,在指针指向的位置不是字符串结束标志'\0'时,通过向后移动指针,记录经过的字符数。
例如:```c#include <stdio.h>int maichar str[] = "Hello, world!";char *ptr = str;int len = 0;while (*ptr != '\0')len++;ptr++;}printf("The length of the string is: %d\n", len);return 0;```这些方法都可以用来计算字符串的长度,具体选择哪种方法取决于个人偏好和具体情况。
c语言编程100题
*******
*****
***
*
78、打印如下矩阵
25
24
23
22
21
10
9
8
7
20
64、编写函数,通过指针求一个字符串的反串。函数头如下:
65、编写函数,通过指针求一个字符串的长度。函数头如下:
#include <stdio.h>
char *strlen(char *s)
{char *p=s;
while(*p)p++;
return(p-s);
71、试编程判断输入的正整数是否既是5又是7的整数倍。若是,则输出yes,否则输出no。
72、每个苹果0.8元,第一天买两个苹果,从第二天开始,每天买前一天的2倍,直到购买的苹果个数达到不超过100的最在数。编写程序求每天平均花多少钱?
73、试编程找出1至99的所有同构数,所谓同构数是指它出现在它的平方数的右边。如6的平方数36故6是同构数。
74、试编写一程序将字符串s中的所有字符c删除。
75、编写程序,求1-3+5+……+101
76、编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于10-4
77、编写程序,打印以下图形(输入一正整数说,输出一棱形)
当n=4时,图形如下:
*
***
*****
24. 把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中的英文字符。
25. 编程,把文本文件d1.dat复制到d2.dat(其中空格字符不复制)。
C语言题目
样式输入:
500 3
150 300
100 200
470 471
样式输出:
298
题目标题:
统计(左利芳)
题目描述:
统计个位数为6的n位数,且能被m整除的共有多少个?
3、建立两层嵌套循环,外循环至退出人数为n-1为止,
内循环中从0循环至n,将a数组中非0的数据逢m置零,同时记录退出人数;
4、循环全部结束后输出最后留下的一个a数组的非零元素的值。
输入描述:
输入为两个正整数,第一个<=100,第二个<=9;
输出描述描述:
输出为一个正整数;
特殊情况,闰年且输入月份大于3时需考虑多加一天。
输入描述:
输入为三个整数,分别表示年、月、日;
输出描述描述:
输出为一个整数,表示输入的年月日为当年的第几天;
样式输入:
2010 1 1
样式输出:
1
题目标题:
电子钟模拟显示(谌海军)
题目描述:
题目描述:
有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。
要求在主函数输入字符串及m值并输出复制结果。
(知识点:控制语句、字符串、指针)
输入描述:
输入为一个字符串(长度小于80)及一个整形数(小于字符串的实际长度)
输出描述描述:
输出为一个字符串
样式输入:
abcdefghijklmnopqrst
8
样式输出:
hijklmnopqrst
C语言实验
C语言上机指导实验2数据类型、运算符和表达式1.实验目的掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。
掌握不同的类型数据之间赋值的规律。
学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
进一步熟悉C程序的编辑、编译、连接和运行的过程。
2.实验内容和步骤(2).在此基础上增加一个语句:printf(“%d%d\n”,c1,c2);再运行,并分析结果。
(3).再将第2行改为:int c1,c2;再使之运行,并观察结果。
(4).再将第3、4行改为:c1 = a; /* 不用单撇号*/c2 = b;再使之运行,分析其运行结果。
(5).再将第3、4行改为:c1 = ”a”; /* 用双撇号*/c2 = ”b”;再使之运行,分析其运行结果。
(6).再将第3、4行改为:c1 = 300; /* 用大于255的整数*/c2 = 400;再使之运行,分析其运行结果。
输入并运行教材第3章习题3.6给出的程序(1).将一个负整数赋给一个无符号的变量,会得到什麽结果。
画出它们在内存中的表示形式。
(2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。
画出它们在内存中的表示形式。
(3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。
画出它们在内存中的表示形式。
同学们可以改变程序中各变量的值,以便比较。
例如:a = 65580, b = -40000,e = 65535,f = 65580。
(2).将第4、5行改为:m = i++;n = ++j;再运行。
printf(“%d,%d”, ++i, ++j);(5).再将printf 语句改为:printf(“%d,%d,%d,%d”, i, j, i++, j++);该题的要求是:要将”China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。
c语言基础100题
c语言基础100题以下是c语言基础100题:1. 编写一个程序,打印“Hello, World!”2. 编写一个程序,读取两个整数并打印它们的和。
3. 编写一个程序,读取一个整数并判断它是奇数还是偶数。
4. 编写一个程序,读取一个整数并判断它是否为质数。
5. 编写一个程序,读取一个整数并计算它的阶乘。
6. 编写一个程序,读取一个整数并打印它的逆序。
7. 编写一个程序,读取一个字符串并打印它的长度。
8. 编写一个程序,读取一个字符串并将其反转。
9. 编写一个程序,读取一个字符串并判断它是否为回文。
10. 编写一个程序,读取一个字符串并统计其中的字符、单词和行数。
11. 编写一个程序,读取一个字符串并将其中的小写字母转换为大写字母。
12. 编写一个程序,读取一个字符串并将其中的大写字母转换为小写字母。
13. 编写一个程序,读取一个字符串并打印其中每个字符的ASCII码。
14. 编写一个程序,读取一个整数并将其转换为二进制、八进制和十六进制。
15. 编写一个程序,读取两个整数并交换它们的值。
16. 编写一个程序,读取两个整数并计算它们的最大公约数和最小公倍数。
17. 编写一个程序,读取一个整数并打印出它的所有因子。
18. 编写一个程序,生成斐波那契数列的前n项。
19. 编写一个程序,读取一个字符串,并打印其中出现最多的字符。
20. 编写一个程序,读取一个字符串,并将其中的空格替换为连字符。
21. 编写一个程序,读取一个字符串并删除其中的重复字符。
22. 编写一个程序,读取一个字符串并判断它是否为合法的URL。
23. 编写一个程序,读取一个字符串并打印出其中的单词个数。
24. 编写一个程序,读取一个字符串并打印出其中的句子个数。
25. 编写一个程序,读取一个整数n并打印出前n个自然数的平方。
26. 编写一个程序,读取一个整数n并打印出前n个自然数的立方。
27. 编写一个程序,读取一个整数n并打印出前n个自然数的和。
C语言程序设计实验六函数答案《西北民大电气学院》
实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。
C语言程序设计各章练习题
C语言程序设计各章练习题《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。
要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。
附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。
第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎪⎩⎪⎪⎨⎧>=<+-=0020212x x x x x y编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎩⎪⎨⎧>≤≤--<=002222x x x x x y编程题3:求 ax 2+bx+c=0方程的解。
(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。
要求提示键盘输入n ,如n 为负数,不予计算,直接返回。
编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。
编程题6:从键盘输入一个数n ,判断n 是否是素数。
编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。
编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。
编程题8:求满足下列条件的三位数n ,它除以11(整数相除)所得到的商等于n 的各位数字的平方和,且其中至少有二位数字相同的数。
编程题9:有一些十进制整数对ab 和cd 具有如下特性:ab×cd=ba×dc,其中a≠b 且c≠d。
如:12×42=21×24。
请编程找出30~50之间满数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。
常见c语言字符串题
常见c语⾔字符串题字符串是程序员求职笔试中必考题型,很能考查出编程的基础。
下⽂选取了⼏个常见的考题和⼤家进⾏分享。
1、编写函数,实现把⼀个char组成的字符串循环右移n位。
如abcdehi,n=2。
则输出hiabcde。
#include "iostream"using namespace std;const int MAX_LEN = 20;void LoopMove(char* cpStr, int iSteps){//注意,在整个处理过程中,cpStr的最后字符都没有涉及处理char cTempArray[MAX_LEN];size_t szStrLength = strlen(cpStr);size_t in = szStrLength -iSteps;memcpy(cTempArray, cpStr + in, iSteps);memcpy(cTempArray + iSteps, cpStr, in);memcpy(cpStr, cTempArray, szStrLength);cTempArray[szStrLength + 1] = '\0';cout << cTempArray << endl;}int main(){char ctemp[] = "abcdefghi";LoopMove(ctemp, 2);cout << ctemp << endl;return 1;}2、输⼊⼀⾏字符串,找出其中出现的相同且长度最长的字符串,输出它及其⾸字符的位置。
如yyabcdabjcabceg,则输出为abc,3。
1. ⼤体思路:把字符串yyabcdabjcabceg拆解:2. yyabcdabjcabceg3. yabcdabjcabceg4. abcdabjcabceg5. ...6. ceg7. eg8. g9. 然后对字符串进⾏排序,⽐较相邻字符串的前驱,求最长的共公前驱。
C语言获取字符串中最长的单词
charword(charstr[])
{inti,k,flag=0,max=0;
charstr1[10],ch[10];
for(i=0;str[i]!='\0';i++)
if((65<=str[i]&&str[i]<=90)||(97<=str[i]&&str[i]<=122))\\如果该字符是字母
}
}
printf("输入的字符串中,最长的单词有%d个字母,该单词是%s\n",max,str1);
}
main()
{chara[100];
printf("请输入一行字符:\n");
gets(a);
word(a);\\调用word函数
}
函数大致流程图如下(“<=”是赋值):
在C-FREE5.0上的运行结果:
{if(flag==0)\\如果该字符是字母,且新单词未开始
{
k=0;
ch[k]=str[i];
flag=1;}
else if(i==strlen(str)-1)\\如果该字符是字母,新单词已开始,且已到达字符串结尾
{k++;
ch[k]=str[i];
ch[k+1]='\0';
if(k+1>max)\\k+1表示单词的长度
{max=k+1;
strcpy(str1,ch);
}
}
else\\如果该字符是字母,新单词已开始,且未到达字符串结尾
{k++;
(完整版)C语言统计文件中的字符数、单词数以及总行数
C语言统计文件中的字符数、单词数以及总行数统计文件的字符数、单词数以及总行数,包括: 每行的字符数和单词数文件的总字符数、总单词数以及总行数空白字符(空格和tab缩进)不计入字符总数; 单词以空格为分隔;不考虑一个单词在两行的情况;限制每行的字符数不能超过1000。
代码如下#in elude <stdio.h> #in elude <stri ng.h>int *getCharNum(char *filename, int *totalNum);int mai n(){char file name[30];// totalNum[0]: 总行数totalNum[1]: 总字符数totalNum[2]:总单词数int totalNum[3] = {0, 0, 0};prin tf("I nput file n ame:");sca nf("%s", file name);if(getCharNum(filename, totalNum)){printf("Total: %d lines, %d words, %d chars'n", totalNum[0], totalNum[2], totalNum[1]);}else{prin tf("Error!\n");}return 0;}/***统计文件的字符数、单词数、行数* @param file name 文件名* @param totalNum 文件统计数据成功返回统计数据,否则返回NULL* @return**/int *getCharNum(char *file name, i nt *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(file name);return NULL;}prin tf("li ne words chars\n");//每次读取一行数据,保存到buffer,每行最多只能有1000个字符while(fgets(buffer, 1003, fp) != NULL){bufferLe n = strle n( buffer);//遍历缓冲区的内容for(i=0; i<bufferLe n; i++){c = buffer[i];if( c==' '|| c=='\t'){ // 遇到空格!isLastBlank && wordNum++; //如果上个字符不是空格,那么单词数加1isLastBla nk = 1;}else if(c!='\n'&&c!='\r'){ // 忽略换行符charNum++; //如果既不是换行符也不是空格,字符数加1isLastBla nk = 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 ,并输入如下的内容:I am Chin ese. I love my coun try.China has 960 square kilometers of territory.China has a populati on of 1.35 billio n.The capital of China is Beiji ng.By gunge2014-10-12运行程序,输出结果为:In put file n ame: d://demo.txt line words chars1 7 262 7 393 7 334 6 275 0 06 2 77 0 08 1 10Total: 8 lin es, 30 words, 142 chars上面的程序,每次从文件中读取一行,放到缓冲区buffer,然后遍历缓冲区,统计当前行的字符和单词数。
c语言编程题
c语⾔编程题C语⾔编程试题1. 给定程序program.c中,编写函数fun 的功能⽤选择排序法对数组的的数据按从⼩到⼤的顺序排列。
注意:请勿改动主函数mian和其他函数中的任何内容,仅在函数fun 的花括号中填⼊你编写的若⼲语句。
试题程序:#include#includevoid fun(a,n){int i,j,k,t;}main(){int i,a[10];for(i=0;i<10;i++)scanf(“%d”,&a[i]);putchar(“\n”);fun(a,10);for(i=0;i<10;i++)printf(“%d”,a[i]);}2. 编写⼀个函数,从所读⼊的若⼲个字符串(⽤end作为结束的标志)中找出长度最⼤的⼀个字符串,并输出该字符串。
注意:部分源程序在⽂件PROG1.C中。
请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中编写的若⼲语句。
⽂件PROG1.C内容如下:#undlude#include#includefun(char(*A) [81],int num,char* *max){}main(){char ss[10][81],*ps;int n,i=0;clrscr();gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i],“end”)= =0){i++;gets(ss[i]);puts(ss[i]);}n=i;fum(ss,n,&ps);printf(“\nmax=%s\n”,ps);}3.给定程序program中,编写函数fun,函数fun的功能是:输⼊⼀⾏字符,将此字符串中最长的单词输出。
例如,输⼊⼀⾏字符i am a student,输出最长的单词:student注意:请勿改动主函数mian和其他函数中的任何内容,仅在函数fun 的花括号中填⼊你编写的若⼲语句。
试题程序:#include#include#includeint fun1(c)char *c;{}main(){int j;char line[1000];prin tf(“输⼊⼀⾏⽂本\n”);gets(line);printf(“最长的单词是:\n”);for(j=fun(line);fun1(line(j));j++);printf(“%c”,line[j]);printf(“\n”);}4.请编写函数int fun(int x),该函数的功能是判断x是否出现在它的平⽅数的右边。
《C语言程序设计》课后习题答案第八章
8.1 编写两个函数,分别求两个证书的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果,两个整数由键盘输入。
void main(){ int Mgy(int x,int y);int Mgb(int z);int a,b,mgy,mgb;printf("请输入两个数:\n");scanf("%d,%d",&a,&b);mgy=Mgy(a,b);mgb=Mgb(a,b,mgy);printf("两个数的最大公约数为%d,最小公倍数为%d\n",mgy,mgb);}int Mgy(int x,int y){ int r,temp;if(x<y){ temp=x;x=y;y=temp;}while(x%y!=0){ r=x%y;x=y;y=r;}return y;}int Mgb(int x,int y,int z){ return (x*y/z);}8.2 求方程ax²+bx+c=0的根,用三个函数分别求当b²-4ac大于零、等于零和小于零时的根,8.3编写一个判素数的函数,在主函数输入一个整数,输出是否是素数的信息。
#include<math.h>void main(){ int Isprime(int a);int m,temp=0;printf("请输入一个数:\n");scanf("%d",&m);temp=Isprime(m);if(temp==0) printf("%d不是素数。
\n",m);else printf("%d是素数。
\n",m);}int Isprime(int a){ int i,k,flag;if(a==0||a==1) flag=0;else{ k=sqrt(a);for(i=2;i<=k;i++)if(a%i==0) flag=0; }return flag; }8.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空8.9编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符8.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
C语言题库
C语言题库1. 输入一个整数,判断它是几位数?(*)2. 编制一函数,得到一个整数的某一位的数字。
(*)3. 求出所有的水仙花数。
水仙花数是一个三位数,其各位数字的立方和等于该数。
例如153=1^3+5^3+3^3。
(**)4、编写函数fun求1000以内所有7的倍数之和。
(*)int fun(int m){ }5、将一个数组中的元素按逆序存放。
(*)6、输入三个整数x,y,z,请把这三个数由小到大输出。
(*)7、递归调用计算阶乘, 输入n,求n的阶乘(*)8、删除字符串中的数字字符。
例如:输入字符串:48CTYP9E6,则输出:CTYPE。
(**)9、计算并输出500以内最大的10个能被13或17整除的自然数之和。
(*)10、统计一个字符串中的字母、数字、空格和其它字符的个数。
(*)11、不用第三个变量,实现两个数的对调操作。
(**)12、求1!+3!+5!+……+n!的和。
(**)13、求一批数中最大值和最小值的差。
(*)14、编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
每一分数的分母是前两项的分母之和;每一分数的分子是前两项的分子之和。
例如:求前20项之和的值为32.660259。
(**)15、打印出如下图(菱形)(**)*************************16、用冒泡法对数组a进行由小到大的排序。
(*)17、求出二维数组中的最大元素值(*)18、输入一个字符串,对字符串逆序输出(*)19、已知一个数列,它的头两项分别是0和1,从第三项开始以后的每项都是其前两项之和。
编程打印此数,直到某项的值超过200为止。
(***)20、计算平均成绩并统计90分以上人数。
(*)21、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(***)22、判断101-200之间有多少个素数,并输出所有素数。
C语言上机实验5-12
17.5 实验5 循环结构程序设计1.实验目的(1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。
(2)掌握在程序设计中循环的方法实现一些常用的算法(如穷举、迭代、递推等)。
(3)进一步学习调试程序。
2.实验内容编程并上机调试运行(1)输入一行字符、分别统计出其中的英文字母、空格、数字和其他字符的个数(本题是教材第5章第4题)在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。
(2)输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身。
例如,153是一个水仙花数,因为153=1³+5³+3³(本题是教材第五章第8题)。
(3)猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃,只剩一个桃子了。
求第一天共摘了多少桃子(本题是教材第五章第12题)。
再得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。
请修改程序并运行,检查结果是否正确。
(4)用牛顿迭代法求方程2X³=4x²+3x-6=0在1.5附近的根(本题是教材第五章第13题,学过高等数学的读者可选做此题)。
再得到正确结果后,请修改程序所设的X初始值由1.5改为100,1000,1000,再运行,观察结果,分析不同的x初值对结果有什么影响,为什么?修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。
3.预习内容预习教材第5章。
17.6 实验6 数组1. 实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。
(2)掌握字符数组和字符串函数的使用。
(3)掌握与数组有关的算法(特别是排序算法)。
2.实验内容编程序并上机调试运行。
c++ 字符串长度计算
c++ 字符串长度计算C++ 提供了以下两个函数来计算字符串的长度:1. strlen() 函数:strlen() 函数用于计算字符串的实际长度,不包含结束的空字符('\0')。
下面的例子使用strlen() 来获取C 语言字符串的实际长度:// length of string#include <iostream>#include <cstring>using namespace std;int main (){char phrase[] = "C++ Programming";cout << "Length of '" << phrase << "' is " << strlen(phrase) << " characters.";return 0;}2. size() 函数:size() 函数用于计算字符串数组拥有的最大长度,这个值是在数组声明时所定义的,而不是实际字符串长度。
下面的例子使用size() 来获取C 语言字符串数组的最大长度:// size of string#include <iostream>#include <cstring>using namespace std;int main (){char phrase[] = "C++ Programming";cout << "Size of '" << phrase << "' is " << sizeof(phrase) << " characters.";return 0;}。
实验报告样本(验证性实验)
一、实验目的和要求1.掌握C语言中定义函数的方法。
2.掌握函数传值调用的方法。
3.掌握递归函数的设计方法。
4.掌握几个函数放在一个文件中以及分别放在几个文件中的编译、连接方法。
二、实验内容1.上机调试下面的程序。
#include<stdio.h>int sum(int a,int b)/*定义一个求和函数*/{return(a+b);/*返回a+b的值*/}void main(){int x,y;printf("%d\n",sum(x,y));/*调用sum函数并显示结果*/}程序运行过程:37814751。
2.编写程序,在主函数中输出1!+2!+3!+…..+10!的值。
要求将计算阶乘的运算写成函数。
#include <stdio.h>void main(){int i,sum=0;long fac(int i);for(i=1;i<=10;i++)sum+=fac(i);printf("sum=%ld\n",sum);}long fac(int i){int r;if(i==1) r=1;else r=i*fac(i-1);return r;} 程序运行过程:sun=4037913.3.编写函数,将输入的十进制正整数n 转换为二进制数,并将转换结果输出。
#include <stdio.h>void main(){int n;void Dec2Bin(int m); /*自定义函数的函数声明*/printf("Input decimal number:\n");scanf("%d",&n);Dec2Bin(n);}void Dec2Bin(int m){int bin[32],j;for(j=0;m!=0;j++){bin[j]= m%2; /*除2取余,余数放入到数组中*/m=m/2;}printf("Output binary number:\n");for(;j!=0;j--) /*数组内的值反序输出*/printf("%d", bin[j-1] );}程序运行过程:Input decimal number:8Output binary number:1000。
C语言strlen()函数:返回字符串的长度
C语⾔strlen()函数:返回字符串的长度头⽂件:#include <string.h>strlen()函数⽤来计算字符串的长度,其原型为:unsigned int strlen (char *s);【参数说明】s为指定的字符串。
strlen()⽤来计算指定的字符串s 的长度,不包括结束字符"\0"。
【返回值】返回字符串s 的字符数。
注意⼀下字符数组,例如char str[100] = "/cpp/u/biaozhunku/";定义了⼀个⼤⼩为100的字符数组,但是仅有开始的11个字符被初始化了,剩下的都是0,所以 sizeof(str) 等于100,strlen(str) 等于11。
如果字符的个数等于字符数组的⼤⼩,那么strlen()的返回值就⽆法确定了,例如char str[6] = "abcxyz";strlen(str)的返回值将是不确定的。
因为str的结尾不是0,strlen()会继续向后检索,直到遇到'\0',⽽这些区域的内容是不确定的。
注意:strlen() 函数计算的是字符串的实际长度,遇到第⼀个'\0'结束。
如果你只定义没有给它赋初值,这个结果是不定的,它会从⾸地址⼀直找下去,直到遇到'\0'停⽌。
⽽sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是⼀个操作符,strlen()是函数。
【函数⽰例】取得字符串 的长度。
#include<stdio.h>#include<string.h>int main(){char *str1 = "/cpp/u/shipin/";char str2[100] = "/cpp/u/shipin_liming/";char str3[5] = "12345";printf("strlen(str1)=%d, sizeof(str1)=%d\n", strlen(str1), sizeof(str1));printf("strlen(str2)=%d, sizeof(str2)=%d\n", strlen(str2), sizeof(str2));printf("strlen(str3)=%d, sizeof(str3)=%d\n", strlen(str3), sizeof(str3));return 0;}运⾏结果:strlen(str1)=38, sizeof(str1)=4strlen(str1)=45, sizeof(str1)=100strlen(str1)=53, sizeof(str1)=5上⾯的运⾏结果,strlen(str3)=53显然不对,53是没有意义的。