求一个字符串的长度的C语言程序
C语言程序设计(第三版)谭浩强著 各章习题答疑
以八、 /* 以八、十六进制输出 */
} ???? 是对应的带符号短整数。 输出结果是八进制整数 十六进制整数
2
3.9 计算某个表达式的值。 通用程序清单如下: stdio.h” #include ”stdio.h stdio.h void main() { ?????? x; 计算表达式值存入x x=( 表达式 );/* 计算表达式值存入x */ printf(”% printf( %?\n”,x); ,x); } ?????? 表达式对应的数据类型符(需事先判断) ? 表达式为整型,则为d 表达式为实型,则为f 3
第七章习题答疑(二)
折半查找法在排序数组中查找某个数。 上课时已有提示。 7.13 字符串连接(b[]中字符串连接到a[]中字符串后) 设:a[10]=”12 ,b[]=”abc 12”, abc” 12 abc (1)找到a串的’\0’的下标(i=2) ’ (2)j=0; 当型循环(b[j]!=’\0’) ’\ ’ a[i]=b[j],i++,j++ (3)a[i]=’\0’ \ 7.15 字符串复制(b[]中字符串复制到a[]中) 设:a[10]=”12”,b[]=”abc” (1)i=0; 当型循环(b[i]!=’\0’) a[i]=b[i],i++ (2)a[i]=’\0’ 7.9
18
第十章习题答疑(一)
输入3个整数,按照由小到大顺序输出。 int x,y,z,*px=&x,*py=&y,*pz=&x; 用以前的程序,其中的x、y、z换成*px、*py、*pz 10.3 输入10个整数存入一维数组a[10],将其中最小数与第1 个数交换,最大数与最后一个数交换。 要求编3个函数: 10 10 输入10个整数、交换、输出交换后的10个整数。 输入函数: void in(int *p,int n) 输出函数: void out(int *p,int n) 交换函数: void change(int *p,int n) 其中寻找最大最小数的方法: int *q,*max,*min; for (max=min=p,q=p+1;q<p+n;q++) { if(*max<*q) max=q; if(*min>*q) min=q; } 19 交换的方法:*p和*min,*(p+n-1)和*max 10.1
智慧树知道网课《C语言程序设计(西安工程大学)》课后章节测试满分答案
第一章测试1【单选题】(1分)C语言程序的基本单位是()A.程序行B.函数C.语句D.字符2【单选题】(1分)C语言规定,在一个源程序中main函数的位置()A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后3【单选题】(1分)对于一个正常运行的C程序,以下叙述中正确的是()A.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束B.程序的执行总是从main函数开始,在程序的最后一个函数中结束C.程序的执行总是从main函数开始,在main函数结束D.程序的执行总是从程序的第一个函数开始,在main函数结束4【单选题】(1分)以下叙述的是()A.C程序的主函数必须用main作为函数名B.C程序在书写时,有严格的缩进要求,否则不能编译通过C.一个C程序只能有一个主函数D.一个C程序可以包含多个不同名的函数5【单选题】(1分)下列说法正确的是()A.一个函数的函数体必须要有变量定义和执行部分B.C程序的书写格式自由,一个语句可以分写在多行上C.一个函数的函数体必须要有执行部分,可以没有变量定义D.C程序的书写格式严格限制,一行内必须写一个语句6【多选题】(1分)下列关于注释行的描述中,正确的是()A.单行注释以“//”开头,“//”后面是注释内容B.注释只在C语言源程序中有效,在编译时会被编译器忽略C.单行注释以符号“/*”开头,以符号“*/”结尾D.注释只能对程序中的某一行代码进行解释7【单选题】(1分)关于计算机语言的描述,正确的是()A.机器语言由0和1组成,执行速度快B.汇编语言比机器语言执行速度快C.汇编语言已将机器语言符号化,所以它与机器无关D.机器语言因为是面向机器的低级语言,所以执行速度慢8【单选题】(1分)用C语言编写的程序()A.可直接被执行B.是一个源程序文件C.经过编译或解释才能被执行D.经过编译、连接后被执行9【单选题】(1分)连接程序将一个C程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终生成一个可执行的二进制文件,它的后缀是()A..objB..cppC..libD..exe第二章测试1【单选题】(1分)C语言提供的数据类型关键字有()A.DoubleB.CharC.shortD.integer2【单选题】(1分)若有说明和语句:inta=5;a++;此处表达式a++的值是()。
c语言
2432999999010001【编程】编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
【答案】double s=1.0,s1=1.0;int n=1;while(s1>=eps){s1=s1*n/(2*n+1);s=s+s1;n++;}Return 2*s编程】规定输入的字符串中只包含字母和*号。
编写函数fun,其功能是:删除字符串中所有的*号。
编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。
【答案】int i,j=0;for(i=0;a[i]!=′\0′;i++)if(a[i]!=′*′)a[j++]=a[i];a[j]=′\0′;【编程】编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
例如,分别输入下面两个字符串:FirstString—SecondString程序输出:FirstString--SecondString【答案】int i,j;for(i=0;p1[i]!=′\0′;i++);for(j=0;p2[j]!=′\0′;j++)p1[i++]=p2[j];p1[i]=′\0′;编程】N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576 698591726487,则平均分应当是:78.625。
【答案】double av=0.0;STREC *p=h->next;while(p!=NULL){av=av+p->s;p=p->next;return ave/N;【编程】编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。
C语言程序设计教程 清华大学出版社 陈明主编 第5章答案
第5章习题解答一、选择题1.以下叙述中错误的是。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)在程序执行中,当数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数解析:对于double类型数组,不能直接用数组名对数组进行整体输入或输出。
所以选项A的说法是正确的。
数组名代表数组所占内存区的首地址,是一个固定指针,其值不可改变,因此选项B也是正确的。
在C语言一维数组定义时可以不指定数组长度,由赋初值的初值个数决定数组的长度。
因此选项D也是正确的。
C语言程序在执行时,不检查数组元素的下标是否越界,如果出现越界,可能会引起系统死机,因此选项C不正确。
答案:C2.有以下程序:/* 文件路径名:ex5_1_2\main.c */#include <stdio.h> /* 标准输入/出头文件*/int main(void) /* 主函数main() */{char s[] = "abcde"; /* 定义字符数组*/s += 2; /* s自加2 */printf("%d\n", s[0]); /* 输出s[0] */return 0; /* 返回值0, 返回操作系统*/}执行后的结果是。
A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错解析:数组s[]的首地址值s是不可改变的,故该程序编译时会出错。
答案:D3.有以下程序:/* 文件路径名:ex5_1_3\main.c */#include <stdio.h> /* 标准输入/出头文件*/int main(void) /* 主函数main() */{int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = &a[3], *q = p + 2; /* 定义数组及变量*/printf("%d\n", *p + *q); /* 输出*p + *q之值*/return 0; /* 返回值0, 返回操作系统*/}程序运行后的输出结果是。
C语言程序设计形考任务全部答案
C语言程序设计形考任务1题目1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
选择一项:A. mainB. MAINC. nameD. function题目2C语言源程序文件的缺省扩展名为()。
选择一项:A. cppB. exeC. objD. c题目3由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
选择一项:A. cppB. exeC. objD. c题目4程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。
选择一项:A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车题目5每个C语言程序文件的编译错误被分为()。
选择一项:A. 1类B. 2类C. 3类D. 4类题目6在·()。
选择一项:A. {}B. {;}C. {x=0;}D. {y=10}题目7C语言程序中的基本功能模块为()。
选择一项:A. 表达式B. 标识符C. 语句D. 函数题目8在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
选择一项:A. 表达式B. 语句C. 参数表D. 函数体题目9在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。
选择一项:A. 尖括号B. 双引号C. 单引号D. 花括号题目10在C语言程序中,多行注释语句使用的开始标记符为()。
选择一项:A. //B. /*C. */D. **题目11在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。
选择一项:A. charB. intC. floatD. double题目12在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。
选择一项:A. 5B. 4C. 3D. 6题目13转义字符'\\'表示的字符是()。
c语言计算字符串长度的几种方法
c语言计算字符串长度的几种方法C语言是一门经典的计算机编程语言,广泛应用于各种领域。
在C 语言中,字符串是一种非常常见的数据类型,而计算字符串长度是一个常见而重要的操作。
本文将介绍C语言中计算字符串长度的几种方法,帮助读者深入理解和掌握这一操作。
在C语言中,字符串是由字符组成的字符数组,以空字符'\0'结尾。
计算字符串长度的方法有很多种,下面我们将逐一介绍这几种方法。
方法一:使用库函数strlen()C语言提供了一个库函数strlen()来计算字符串的长度。
这个函数定义在<string.h>头文件中,可以直接调用。
使用strlen()函数非常简单,只需要提供一个字符串作为参数,函数会返回字符串的长度。
例如,下面的代码演示了如何使用strlen()函数计算字符串的长度:```cinclude<stdio.h>include<string.h>int main(){char str[]="Hello,World!";int length=strlen(str);printf("字符串的长度是:%d\n",length);return0;}```输出结果为:字符串的长度是:13。
可以看到,使用strlen()函数可以方便地计算出字符串的长度。
方法二:使用循环计数除了使用strlen()函数,我们还可以通过循环遍历字符串并计数字符的个数来计算字符串的长度。
这种方法相对较为底层,但可以帮助读者更好地理解字符串的本质。
下面的代码演示了如何使用循环计数的方法计算字符串的长度:```cinclude<stdio.h>int main(){char str[]="Hello,World!";int length=0;length++;}printf("字符串的长度是:%d\n",length);return0;}```输出结果仍为:字符串的长度是:13。
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语言编程菜鸟练习100题(51-60)
C语⾔编程菜鸟练习100题(51-60)【练习51】矩阵转置0. 题⽬:矩阵的转置1. 分析:练习使⽤ for 循环嵌套,多维数组的表达。
2. 程序:#include <stdio.h>int main(){int inMatrix[10][10], outMatrix[10][10], rows, cols, i, j;printf("输⼊矩阵的⾏与列(逗号分隔): ");scanf("%d,%d", &rows, &cols);// 存储矩阵的元素printf("\n输⼊矩阵元素:\n");for(i=0; i<rows; ++i)for(j=0; j<cols; ++j){printf("输⼊元素 inMatrix%d%d: ",i+1, j+1);scanf("%d", &inMatrix[i][j]);}// 显⽰矩阵 inMatrix[][] */printf("\n输⼊矩阵是: \n");for(i=0; i<rows; ++i){for(j=0; j<cols; ++j)printf("%d\t", inMatrix[i][j]);printf("\n");}// 转换for(i=0; i<rows; ++i)for(j=0; j<cols; ++j)outMatrix[j][i] = inMatrix[i][j];// 显⽰转换后的矩阵 outMatrixprintf("\n转换后矩阵是:\n");for(i=0; i<cols; ++i){for(j=0; j<rows; ++j)printf("%d ",outMatrix[i][j]);printf("\n");}return 0;}3. 输⼊输出:输⼊矩阵的⾏与列(逗号分隔):2,3输⼊矩阵元素:输⼊元素 inMatrix11: 2输⼊元素 inMatrix12: 3输⼊元素 inMatrix13: 4输⼊元素 inMatrix21: 5输⼊元素 inMatrix22: 6输⼊元素 inMatrix23: 4输⼊矩阵是:2 3 45 6 7转换后矩阵是:2 53 64 7【练习52】使⽤指针访问数组元素0. 题⽬:使⽤指针访问数组元素1. 分析:指针提供⼀种以符号形式使⽤地址的⽅法。
C语言程序设计题库二
C 语言程序设计题库二1、写出下面函数的运行结果。
#include<stdio.h>void fx701(int k,int n,float a);int main(){int k=1,n=5;float a=3.2,b=8.5;printf(" 调用前:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);fx701(k,n,a);printf(" 调用后:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);return 0;}void fx701(int k,int n,float a){int q=100;float b,x=6.2;k+=q; n*=q; a-=x; b=3.5*a;printf(" 函数中:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);}解:调用前:k=1 n=5 a=3.20 b=8.50函数中:k=101 n=500 a=-3.00 b=-10.50调用后:k=1 n=5 a=3.20 b=8.50 2、编写一个函数,实现从键盘输入一个整数,如果该整数为素数,则返回否则返回0。
1,解:#include<stdlib.h>#include<stdio.h>int Is_prime(int i){int j=0;for(j=2;j<i;j++){if(0==(i%j)){return 0;}}return 1;}int main(){int i;printf("Please input a number:"); scanf("%d",&i);if(1==Is_prime(i)){printf("%d is a prime.\n",i);}elseprintf("%d is not a prime.\n",i); system("pause");return 0;程序运行结果如下:Please in put a nu mber:1 /13 is a prime.Please in put a nu mbe8 /8 is not a prime.3、设计两个函数,分别求矩形的周长和面积,并在主函数中调用这两个函数解:#include<stdio.h>float area(float a,float b){float s;s=a*b;return(s);}float zc(float a,float b){float p;p=2*(a+b);return(p);}int main(){float a,b,s,p;printf(" 请输入长方形的边长a,b:");scanf("%f%f",&a,&b);s=area(a,b);p=zc(a,b);printf("长方形的周长为p=%f,长方形的面积为s=%f",p,s);m~n 要求程序运行情况如下:请输入长方形的边长a,b:3 4/长方形的周长为p=14.000000长方形的面积为s=12.0000004、 编写一个函数求一个整数n 的阶乘,在主函数中计算并输出10!的值。
C语言编程题_经典40题(附解答)
{int i, j, temp, exchange ; for ( i=0; i<n-1; i++)
/*i表示趟数,最多n-1趟*/
{exchange=0; /*假设这一趟不会有数据交换*/
for ( j=n-1 ; j> i; j--)
if (R[j]<R[j-1]) /*若反序则交换,将较小的元素往上调*/ { temp =R[j]; R[j]=R[j-1]; R[j-1]= temp; exchange=1; } if(exchange= =0) return; } }
{ for( j=1; j<=i; j++)
printf(―%4d* %d= %2d‖, i, j, i*j); printf(―\n‖); } }
8、铁路托运行李规定:行李重不超过50公斤的,托运费 按每公斤0.15元计费;如超过50公斤,超过部分每公斤加收 0.10元。编一程序实现自动计费功能。 double money(double w ) { if (w<=50) return 0.15*w; else return 0.75+0.1*(w-50); } void main( ) { int w; double f; do { printf(―请输入行李重量:”); scanf(―%d‖,&w); if (w >0) { f =money(w); printf(―\nweight=%d,freight=%f‖,w,f); } }while (w= =0); }
{ temp=b[i]; b[i]=b[k]; b[k]=temp; }
} }
输出一维数组的函数如下:
C程序设计-字符串
输入一个字符串:Hello China 输入的字符串是:Hello China
使用 gets函数允 许输入空格
Hello
C h i n a \0
19
字符串示例
【例】输入一句话,统计空格的个数
C is a programming language
#include <stdio.h>
其中的空格总数为 4
即寻找空格或‘\0’ ⑤未结束则转② ⑥否则打印个数
思考题:将第一个字 符如果是小写字母改 成大写字母
输入一行字符,将此 字符串中最长的单词 输出
#include <stdio.h>
void main()
{ int i=0,num=0;
char str[100],c;
gets(str);
①
do {
while((c=str[i])==' ')i++;
China
不是字符串
再如: char c[ ]=”China”;
是字符 串
C h i n a \0
注意:不可以为数组单独整体赋值,例如
× char str[10]; str=”China”;
10
字符串的输入和输出 对于字符串(字符数组),在程序中既可以逐个引 用字符串中的单个字符(数组元素) 也可以一次引用整个字符串(字符数组)
4
字符串的概念
字符串常量 用双引号“ ”括起的字符序列是字符串常量,C语 言自动为其添加'\0'终结符
“China University of Petroleum"
“Hello World "
"Hello \"UPC\""
电大C语言程序设计 第4章 数组和字符串
Байду номын сангаас
第4章 数组和字符串 4.4 使用typedef语句定义数组类型 2. 二维数组类型的定义语句 格式: typedef <元素类型关键字> <数组类型名> [<常量表达式1>] [<常 量表达式2>]; 格式举例: (1) typedef int Matrix[5][5]; (2) typedef char nameTable[10][NN]; (3) typedef double DataType[M+1][N+1]; 定义对象: (1) Matrix mx={{0}}; (2) nameTable nt={""}; (3) DataType dd={{0.0}};
第4章 数组和字符串 4.2 一维数组 3. 数组元素访问 数组元素可以象普通变量一样使用。如: (1) int a[5]={0,1,2,3,8}; (2) a[0]=4; (3) a[1]+=a[0]; (4) a[3]=3*a[2]+1; (5) printf("%d",a[a[0]]);
第4章 数组和字符串 4.1 数组的概念 一维数组可以表示和存储和一维相关的数据。 二维数组可以表示和存储和二维相关的数据。 三维数组可以表示和存储和三维相关的数据。 假定一个数列为a1,a2,…,an,可以用一维数组来 存储。一个矩阵可以用二维数组来存储。
第4章 数组和字符串 4.2 一维数组 1. 定义格式 <类型关键字><数组名>[<常量表达式>][={<初 值表>}] <类型关键字>:已存在的一种数据类型。 <数组名>:用户定义的标识符。 <常量表达式>只能含有通过#define命令定义的 符号常量,不能含有通过const语句定义的符号 常量,初值表为用逗号分开的一组表达式。
二级C语言-2-1
二级C语言-2-1(总分:84.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:35,分数:52.00)1.数据库系统的核心是______。
∙ A. 数据模型∙ B. 数据库管理系统∙ C. 数据库∙ D. 数据库管理员(分数:2.00)A.B. √C.D.解析:[解析] 数据库管理系统是负责数据库中的数据组织和数据操纵数据维护、控制及保护的数据服务。
它是一种系统软件,是数据库系统的核心。
2.有以下程序#include<stdio.h>#include<string.h>typedef struct{char name[9];char sex;float score[2];)STU;STU f(STU a){ STU b={"Zhao",'in',85.0,90.0);int i;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];return a;}main(){ STU c={"Qian",'f',95.0,92.0},d;d=f(c);printf("%s,%c,%2.0f,%2.0f",,d.sex,d.score[0],d.score[1]);}程序的运行结果是{{U}} {{/U}}。
∙ A.qian,f,95,92∙ B.qian,m,85,90∙ C.ZhaO,m,85,90∙ D.Zhao,f,95,92(分数:1.00)A.B.C. √D.解析:[解析] f()函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,返回变量a。
3.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是 ______。
main(){unsigned int a=32,b=66;printf("%c/n",a|B) ;}∙ A. 66∙ B. 98∙ C. b∙ D. B(分数:2.00)A.B.C. √D.解析:[解析] 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为1。
C语言中求字符串长度的函数的几种实现方法
C语⾔中求字符串长度的函数的⼏种实现⽅法1.最常⽤的⽅法是创建⼀个计数器,判断是否遇到‘\0',不是'\0'指针就往后加⼀。
int my_strlen(const char *str){assert(str != NULL);int count = 0;while (*str != '\0'){count++;str++;}return count;}2.不创建计数器,从前向后遍历⼀遍,没有遇到‘\0'就让指针向后加⼀,找到最后⼀个字符,记下来地址,然后⽤最后⼀个字符的地址减去起始地址,就得到了字符串的长度。
int my_strlen(const char *str){char *end = str;assert(str!=NULL);assert(end!=NULL);while (*end != '\0'){end++;}return end - str;}3.不创建计数器,递归实现。
int my_strlen(const char *str){assert(str != NULL);if (*str == '\0'){return 0;}else{return (1 + my_strlen(++str));}}也可以写成这样:int my_strlen(const char *str){assert(str != NULL);return (*str == '\0') ? 0 : (my_strlen(++str) + 1);}或者这样:int my_strlen(const char *str){assert(str != NULL);return (*str == '\0') ? 0 : (my_strlen(str+1) + 1);}这篇关于c语⾔中获取字符串长度的函数就介绍到这了,需要的朋友可以参考⼀下。
c语言程序填空题(1)
三、程序填空题导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include <stdio.h>main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a= ①;b= ②;a= ③;printf("a=%d,b=%d\n",a,b);}页脚内容1【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。
#include <math.h>double pi(long n){ double s=0.0;long i;for(i=1;i<=n;i++)s=s+ ①;return( ② );}【3.3】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])页脚内容2①;}main(){ int a[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。
1253《C语言程序设计》电大期末试题及其答案
《C语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。
A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。
9.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p 指向s所指向的字符串,则p应定义为(A)。
A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。
C语言字符串处理函数---练习(指针数组-字符串处理函数)
C语言字符串处理函数练习请查询并学习相关的字符串处理函数:求长度:strlen,msdn格式如下,其它雷同size_t strlen(const char*string);其中size_t为int的类型重新定义复制:strcpy比较:strcmp,返回值为0,表示相等连接:strcatN复制:strncpy定位字符:strchr字符串转换为数字串:atoi,atof,atoll其它函数:sprintf【数据输入】数据是一个很长的字符串,用#分割,如下所示:中国#郑州#410037#welcome注意:#符号隔开的字符串长度不一定相同【功能要求】(1)用指针数组实现分割后结果的存储指针数组:类型*符号名[]注意区分:指向数组的指针:(类型*)符号名[]例1:静态的指针数组char*aa[]=//4个元素,每个为char*类型{"hello","中华人民共和国","郑州市","世纪欢乐园"}为一个数组,数组的每个元素为指针类型,args每个元素为字符串。
例2:动态分配指针数组//定义一个二维指针char**mm=NULL;int nLen=3;//指针数组个数mm=new char*[nLen];//申请3个数组元素,每个的类型为char*//-------为每一个数组元素申请空间,并填充内容char bb[256]="";strcpy(bb,"hello");mm[0]=new char[strlen(bb)+1];//第0个数组元素strcpy(mm[0],bb);//strcpy(bb,"中华人民共和国");mm[1]=new char[strlen(bb)+1];strcpy(mm[1],bb);//strcpy(bb,"河南省郑州市");mm[2]=new char[strlen(bb)+1];strcpy(mm[2],bb);//printf("%s\n%s\n%s\n",mm[0],mm[1],mm[2]);(2)分割后的个数(3)分割结果的输出【解题思路】先求出分割后的个数,然后分配指针数组,并存储,最后输出。
C语言基础题
第一期:1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身,例如:153是一水仙花数,因为153=1+125+27.2. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如:6的因子是1,2,3,而6=1+2+3因此6是“完数”。
编程序找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,33. 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20相之和。
4.一个球从100M高度自由下落,每次落地后反跳回原高度的一半,再落下,再反弹,求它在第10次落地时,共经过多少米,第10次反弹多高。
5.猴子吃桃问题。
猴子第一天,摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。
第二天早上又将剩下的桃子吃掉一半,有多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第十天早上想再吃时,就只剩一个桃子了。
求第一天共摘了多少个桃。
6.两个乒乓球队进行比赛,各出3人。
甲队为A,B,C;乙队X,Y,Z。
以抽签决定比赛名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3队赛手的名单。
7.将一个二维数组行和列的元素互换,存到另一个数组中。
原始二位数组手动输入,行和列自定。
8.输出以下的杨辉三角形(要求输出15行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 19.输出“魔方阵”。
所谓魔方阵就是指这样的方阵,它的每一行,每一列和对角线之和均相等。
例如三阶魔方阵为:8 1 64 9 2要求输出1~n2的自然数构成的魔方阵。
10.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
第二期:1.有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
C语言程序设计100个简单的经典例子
经典C语言程序设计100例1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C的图案7.显示特殊图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数"20.球体自由落下物理问题21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和25.求1+2!+3!+...+20!的和26.利用递归方法求5!27.将输入字符以相反顺序打印28.岁数问题29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法45.使用register定义变量方法46.宏#define命令练习(1)47.宏#define命令练习(2)48.宏#define命令练习(3)49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与&52.学习使用按位或|53.学习使用按位异或^54.取一个整数从右端开始的4~7位。
55.学习使用按位取反~56.用circle画圆形57.学用line画直线58.用rectangle画方形59.画图综合例子160.画图综合例子261.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse64.利用ellipse and rectangle画图65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n77.填空练习(指向指针的指针)78.找到年龄最大的人79.字符串排序80.海滩猴子分桃81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的*89.数据加密90.专升本一题91.时间函数举例192.时间函数举例293.时间函数举例394.一个猜数游戏95.家庭财务管理小程序96.计算字符串中子串出现的次数97.输入字符并保存到磁盘98.字符串转换成大写字母并输出保存99.文件操作应用1100.文件操作应用2--------------------------------------------------------------------------------c语言经典100题【实用】【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
c语言程序填空含答案
【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。
bool (char)......fun(char *c)fun= c;(return *c)..........puts(*p);(putchar(*p)).............【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/ #include<stdio.h>void wwjt();void swap(int *a,int *b){/**********Program**********//********** End **********/ }main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)swap(&x,&y);if(x<z)swap(&x,&z);if(y<z)swap(&y,&z);printf("%3d%3d%3d",x,y,z);wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write FILE Error"); }for(n=0;n<3;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]);}swap(&i[0],&i[1]);fprintf(OUT,"%d\n",i[0]);fprintf(OUT,"%d\n",i[1]);}fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。