重庆大学C语言
- 格式:doc
- 大小:52.50 KB
- 文档页数:5
重庆大学2019年全国硕士研究生招生考试试题科目代码:877科目名称:C语言程序设计和数据库原理及应用总分:150分特别提醒:1、所有答案一律写在答题纸上,写在试题或草稿纸上无效,不给分。
2、该科目考生需携带的特殊文具:三角板(如无存储功能计算器、三角板、量角器、绘图工具等),如无特殊要求,则在横线处填写“无”;3、如有选做题,考生须按要求选答,如果多答,则评卷时以答题顺序先者为有效。
一、单项选择题(19题,1-18题每题2分,19题4分,共40分)1、已知 float a;Int b=1;执行语句“a=b++/3;”后,变量a的值是()。
A)2/3 B)1 C)1/3 D)02、表达式8/4*(Int)2.5/(Int)(1.25*(3.7+2.3)值的数据类型为()。
A)int B)float C)double D)不确定3、以下描述中正确的是()。
A)由于 do-while环中循环体语句能是一条可执标语句,所以循环体内不能使用复合语句。
B)do-while循坏do开始,用while结束,在while(表达式)后面不能写分号C)在 do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while4、为了判断两个字符串s1和s2是否相等,应当使用()A.if(s1==s2)B. if(s1=s2)C.if(strcpy(sl,s2))D.if(strcmp(sl,s 2)==0)5、下面程序片段(字符串内没有空格字符)的输出结果是()。
printf("%d\n",strlen("ATS\n012\\"));A)11 B)10 C)9 D)86、下列程序是求1到100的累加和,其中有1个不能够完成规定的功能,是()A)int s=0,i=1;B)int s=0,i=1;while(i<=100)s+=i++;while(i++<100)s+=i;C)int s=0,i=0;D)int s=0,i=0;while(i<100)s+=++i;While(++i<=100)s+=i;7、根据C语言规定,可知以下不正确的说法是()。
全国计算机等级考试(NCRE)二级C第10讲全国计算机二级公共基础知识C 语言程序设计知识结构C语言程序设计知识结构主要内容⏹1、数据结构与算法⏹2、程序设计基础⏹3、软件工程基础⏹4、数据库设计基础算法的定义对解题方案准确而完整的描述称为算法。
算法是程序设计的核心算法的基本概念P1算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗点说,就是计算机解题的过程(计算的方法)。
在这个过程中,无论是形成解题思路(推理实现的算法)还是编写程序(操作实现的算法),都是在实施某种算法。
例:n 个数从大到小进行排序。
有多种排序方法,常用的有冒泡排序、选择排序等。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
常考点算法的基本特征P1一个算法应该具有以下五个重要的特征:⏹有穷性⏹确定性⏹输入⏹输出⏹可行性一个算法必须保证执行有限步之后结束;算法的每一步骤必须有确切的定义;一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的;算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成拥有足够的情报常考点算法与计算机程序算法____是一组逻辑步骤程序——用计算机语言描述的算法算法的表示INPUT r S=3.14 * r*r PTINT S 开始输入RS=3.14 *R*R 输出S结束问题:输入园的半径,计算园的面积一个算法的表示需要使用一些语言形式。
传统的算法-------图形法,如“流程图”和N-S 图目前常用的方法-------使用伪码描述算法。
算法好坏的描述:时间复杂度空间复杂度一般考点算法的复杂度⏹是算法效率的度量:时间复杂度和空间复杂度。
⏹表示:O(1)\O(n)\O(n^2)⏹算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
川渝考研提供:历年考研试题及答案、辅导笔记、专业课及公共培训等、电话:1359402530重庆大学2017年硕士研究生入学考试试题科目代码:877科目名称:C语言程序设计和数据库原理及应用总分:150分特别提醒:1.所有答案一律写在答题纸上,直接写在试题和草稿纸上无效,不给分。
2.该科目考生需携带的特殊文具:无(如无存储功能计算器、三角板、量角器、绘图工具等)。
如无说明,则视为对文具无特殊要求,并在横线处填写“无”。
一、单项选择题(20题,每题2分,共40分)1.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序支件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一函数开始,到本程序main函数结束2.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.在C程序中,注释说明只能位于一条语句的后面D.C程序的基本组成单位是函数3.以下不正确的叙述是()。
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变。
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
4.下列四组选项中,均不是C语言关键字的选项是()。
A. define IF typeB. get char printfC. include scanf caseD. while go pow5.下面四个选项中,均是不合法的用户标识符的选项是()。
A.A P_0 doB.float la0 _AC.b-a goto intD._123 temp INT6.已有定义int x:float y;且执行scanf(“%3d%f”,&x,&y),语句,若从第一列开始输入数据12345 678,则y的值为()。
重庆大学c语言期末试题及答案一、选择题(每题2分,共20分)1. 下列选项中,哪个是C语言的关键字?A. intB. floatC. doubleD. all of the above答案:D2. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. class答案:A3. 下列哪个运算符用于将一个浮点数转换为整数?A. %B. /C. +D. -答案:A4. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. intD. void答案:C5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. for答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是____。
答案:int2. 用于在C语言中声明一个数组的关键字是____。
答案:array3. 在C语言中,____运算符用于比较两个值是否相等。
答案:==4. 在C语言中,____函数用于将字符串连接到另一个字符串的末尾。
答案:strcat5. 在C语言中,____函数用于将一个字符串复制到另一个字符串。
答案:strcpy三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```3. 编写一个C语言程序,计算并输出100以内所有奇数的乘积。
大一新生c语言知识点汇总C语言是一门广泛应用于计算机科学领域的编程语言,作为大一新生,学习和掌握C语言的基础知识是非常重要的。
下面将对大一新生需要了解的C语言知识点进行汇总。
一、基本概念和语法1. 数据类型:C语言中常见的数据类型包括整型、浮点型、字符型、布尔型等,学习者需要了解不同类型的变量声明和使用方法。
2. 变量和常量:学习者需要掌握如何声明变量,并了解常量的概念及其使用方法。
3. 运算符:C语言支持各种运算符,如算术运算符、关系运算符、逻辑运算符等。
学习者需要了解它们的优先级和使用方法。
4. 控制结构:C语言提供了分支语句(if-else语句、switch语句)和循环语句(for循环、while循环、do-while循环)来控制程序的流程。
二、函数和数组1. 函数:学习者需要了解函数的定义和调用方法,以及函数参数的传递方式(值传递、引用传递)。
2. 数组:C语言支持数组操作,学习者需要了解数组的声明和使用方法,以及如何进行数组的遍历和操作。
三、指针和内存管理1. 指针:指针是C语言的一项重要特性,学习者需要了解指针的概念、声明和使用方法。
2. 动态内存管理:C语言提供了动态内存分配的功能,学习者需要了解如何使用malloc()和free()函数来进行内存分配和释放。
四、字符和字符串处理1. 字符输入输出:学习者需要了解如何使用标准输入输出函数来读取和输出字符。
2. 字符串处理:C语言提供了一系列字符串处理函数,如strlen()、strcpy()、strcat()等,学习者需要了解它们的使用方法。
五、文件操作1. 文件读写:学习者需要了解如何使用C语言提供的文件操作函数来进行文件读写操作。
2. 文件打开和关闭:学习者需要了解如何正确地打开和关闭文件,并处理异常情况。
六、调试和错误处理1. 调试技巧:学习者需要了解如何使用调试器来定位和解决程序中的错误。
2. 错误处理:学习者需要了解如何处理程序中可能出现的错误,如运行时错误和逻辑错误。
重庆计算机二级c语言知识点总结重庆计算机二级C语言知识点总结一、C语言基础知识1. C语言的概念和特点- C语言是一种通用的高级编程语言,具有简洁的语法和强大的表达能力。
- C语言能够直接操作内存,对硬件进行底层控制,具有高效的性能。
- C语言具有丰富的标准库,可以方便地进行文件操作、字符串处理等任务。
2. C语言的基本语法- 变量和常量的定义和使用。
- 运算符和表达式的使用。
- 控制语句(if、switch、for、while等)的使用。
- 函数的定义和使用。
3. C语言的数据类型- 基本数据类型(int、float、char等):用于表示整数、浮点数和字符。
- 指针类型:用于表示内存地址。
- 数组类型:用于表示一组相同类型的数据。
- 结构体类型:用于表示一个复合的数据结构。
- 枚举类型:用于表示一组离散的值。
4. C语言的输入和输出- 标准输入函数(scanf):用于从键盘读取输入数据。
- 标准输出函数(printf):用于向屏幕输出结果。
5. C语言的内存管理- 内存的分配和释放:使用malloc和free函数进行动态内存分配和释放。
- 内存的访问和操作:使用指针对内存地址进行读写操作。
二、C语言高级特性1. 指针和内存管理- 指针的概念和用法:指针是内存地址的表示,可以用于访问和操作内存。
- 指针的运算和应用:指针可以进行算术运算,并用于实现数据结构和算法。
2. 结构体和联合体- 结构体的定义和使用:结构体是一种复合的数据类型,可以包含多个不同类型的成员变量。
- 结构体的嵌套和引用:结构体可以嵌套定义和引用,用于表示更复杂的数据结构。
- 联合体的定义和使用:联合体是一种特殊的结构体,可以共享存储空间。
3. 指针和函数- 函数指针的定义和使用:函数指针可以指向函数,并用于实现回调函数等功能。
- 指针作为函数参数:可以使用指针作为函数参数,实现对变量的引用传递。
4. 动态内存管理- 动态内存分配和释放:使用malloc、calloc和realloc函数进行动态内存分配,使用free函数进行内存释放。
一2、①a/b②a%b3.(1)#include "stdio.h"#include "conio.h"void main(){ float r,s;r=10;s=3.14*r*r;printf("s=%.4f\n\n",s);getch();}(2)#include "stdio.h"#include "conio.h"#include <stdlib.h>void main(){ int s,num1,num2,num=100;/*初始化随机数发生器,其作用是每次运行程序时使rand()产生的随机数不一样*/int rand();num1=rand()%num +1; /*产生num范围内的随机加法数1*/num2=rand()%num +1; /*产生num范围内的随机加法数2*/printf("%d + %d = ",num1,num2);printf("请输入你的答案: ");scanf("%d",&s);if(num1+num2==s) /*判断是否答对*/printf("Yes,你答对了。
%c\n",7); /*7为响铃*/else /*答错的处理*/printf("No,你答错了。
\n");getch();}二1.验证性实验(1) 程序运行结果x=10,y=10,z=10x=8,y=10,z=16c1=M,c2=4d,c3=115,c4=77c1=M,c2=M,c3=M,c4=Mc1=77,c2=77,c3=77,c4=77c=m,c=109(2)程序运行结果输入:1,23,45,67,6a,b输出:a= 1,b= 2c= 3.00,d= 4.00e= 5,f= 6 u=7,v=6c1=,c2=2输入:1,22,33,44,5a,b输出:a= 1,b= 2c= 2.00,d= 3.00e= 3,f= 4 u=4,v=5c1=a,c2=b(3)程序运行结果1234567812345678123456781234567856 75 6 7c:\a.txt2.填空性实验①%f ②&h ③pi*r*r ④s*h ⑤v3.程序改错(1)#include "stdio.h"#include "conio.h"void main(){ float a,b,x;a=3.1;b=4.5;x=a+b;printf("%.0f",x);getch();}(2)#include "stdio.h"#include "conio.h"void main(){int x,a;x=12345;a=x%10;printf("%d",a);getch();}4.设计性实验(1)#include "stdio.h"#include "conio.h"void main(){ float x,y,z;printf("Please input 2 reals");scanf("%f%f",&x,&y);z=x;x=y;y=z;printf("After swapped,x=%f,y=%f",x,y);getch();}(2)#include "stdio.h"#include "conio.h"void main(){ char a,b;a=127;b=a+1;printf("a=%c,a+1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);a=-128;b=a-1;printf("a=%c,a-1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);getch();}三一、验证性试验:由于程序主函数结尾缺少"getch();"导致最后的执行结果一闪而过加上后执行结果为15M5.55b=25,y=2.6,c2=Na= 15,b=25x=5.550000,y=2.600000c1=M,c2=N在scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入a的值后,接下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是先输字符再输一个数,其间就可以用空格。
一、C语言程序设计1. 请简述C语言程序的执行过程。
C语言程序的执行过程包括预处理、编译、汇编和链接四个阶段。
首先,预处理器处理源代码中的预处理指令,比如#include和#define等,生成一个没有预处理指令的中间代码文件。
然后,编译器将中间代码文件转换成汇编代码文件。
接着,汇编器将汇编代码文件翻译成机器码文件。
最后,链接器将编译器生成的可执行文件与系统库和用户库中的目标文件链接在一起,生成最终的可执行程序。
2. 请列举一些C语言中常用的数据类型及其所占的存储空间。
C语言中常用的基本数据类型包括char、int、float和double。
其中,char类型占用1个字节的空间,表示一个字符;int类型占用4个字节的空间,表示整数;float类型占用4个字节的空间,表示单精度浮点数;double 类型占用8个字节的空间,表示双精度浮点数。
除了基本数据类型,C语言还提供了其他一些数据类型,比如枚举类型、结构体类型和指针类型等。
3. 请解释C语言中的指针及其用途。
指针是C语言中一个非常重要的概念,它是一个存储变量地址的变量。
使用指针可以实现对变量的间接访问,从而对变量进行操作。
在C语言中,使用指针可以实现动态内存分配和释放。
比如,在需要动态申请内存的时候,可以使用malloc函数申请一块内存,然后使用指针指向这块内存;在使用完这块内存后,可以使用free函数释放它。
此外,在函数调用中也经常使用指针传递参数,这样可以避免复制大块的数据,提高程序的效率。
4. 请解释C语言中的结构体及其用途。
结构体是C语言中定义自己的数据类型的一种机制,它可以将不同类型的数据组合成一个单元。
使用结构体可以方便地组织复杂的数据结构。
例如,可以定义一个名为student的结构体,其中包括学生的姓名、学号、性别和年龄等信息。
然后,可以定义一个名为stu的student类型的变量,用来存储一个学生的信息。
使用.运算符可以访问结构体中的成员变量。
重庆大学2018年硕士研究生入学考试试题科目代码:877科目名称:C语言程序设计和数据库原理及应用总分:150分特别提醒:1、所有答案一律写在答题纸上,写在试题或草稿纸上无效,不给分。
2、该科目考生需携带的特殊文具;无一、单项选择题(每小题2分,25题,共50分1.下列表达式的值为0的是()A.3%5B.3/5.0C.3/5D.3<52.正确的C语言用户自定义标识符是()A.printB.floatC.whenD.random%23.下列叙述中,正确的是()A.引用带参的宏时,实际参数的类型与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义4.设int x[]={1,2,3,4,5,6},*p=x; 则值为3的表达式是()A.P+=2,*++PB.P+=2,*P++C.P+=3,*PD.P+=2,++*P5.下列序的运行结果是()#define EVEN(X)X%2==0?1:0main(){if(EVEN(9+1)) printf(“is even”)else printf(“is odd”); }A.is evenB.出错C.无结果D.is odd羌结果D.is odd6.以下错误的描述是()A.break语句不能用于循环语句和 switch语句外的任何其他语句B.在switch语句中使用 break语句或 continue语句的作用相同C.在循环语句中使用 continue语句是为了结束本次循环,而不是终止整个循环D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环7.为了判断两个字符串s1和s2是否相等,应当使用()A.if(s1==s2)B. if(s1=s2)C.if(strcpy(sl,s2))D.if(strcmp(sl,s 2)==0)8.若int a,b,c;则为它们输入数据的正确输入语句是()A.Read(a,b,c);B.scanf("%d%d%d",a,b,c);C.scanf("%d%d%d",%a,%b,%c);D.scanf(%d%d%d%",&a,&b,&c);9.设在说明:char w;int x;float y;double z;,则表达式w*x+z-y值的数据类型为()A.doubleB.floatC.intD.char10.自动型变巖配在()A.内存的数据区中B、CPU的通用寄存器中C.内存的堆栈区中D.内存的程序区中1l.用关系型数据库系统来管理数据,数据由()统一管理和控制,数据的独立性高,数据的共享性好,数据冗余度低,数据被结构化。
2022年重庆大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、C语言源程序的基本单位是________3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。
5x7+3x6-4x5+2x1+x3-6x2+x+105、若有定义语句:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_______6、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。
7、下面程序段是找出整数的所有因子。
请填空。
scanf("%d",&x);i=1;for(;_______;){if(x%i==0)printf("%3d",i);i++;}8、下面程序段的运行结果是_______。
char ch[]="600";int a,s=0;for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)s=10*s+ch[a]-'o';printf("%d",s);9、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);10、下面程序段的运行结果是_______。
一、单项选择题(共20 题、共50 分)1.以下关于函数模板叙述正确的是()。
A、函数模板也是一个具体类型的函数B、通过使用不同的类型参数,函数模板可以生成不同类型的函数C、用函数模板定义的函数没有类型D、函数模板的类型参数与函数的参数是同一个概念2.下列对引用的陈述中不正确的是()。
A、每一个引用都是其所引用对象的别名, 因此必须初始化B、一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行C、不需要单独为引用分配存储空间D、形式上针对引用的操作实际上作用于它所引用的对象3.类中定义的成员默认为()访问属性。
A、publicB、protectedC、friendD、private关于消息,下列说法中不正确的是()。
A、发送消息的对象请求服务,接受消息的对象提供服务B、在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用C、每个对象只能接收某些特定格式的消息D、消息的发送者必须了解消息的接收者如何相应消息5.关于静态成员的描述中,()是错误的。
A、静态成员可分为静态数据成员和静态成员函数B、静态数据成员初始化不使用其构造函数C、静态数据成员函数中不能直接引用非静态成员D、静态数据成员定义后必须在类体内进行初始化6.关于内联函数说法错误的是()。
A、不是任何一个函数都可定义成内联函数B、递归函数可以被用来作为内联函数C、内联函数一般适合于只有1~5 行语句的小函数D、内联函数的函数体内不能含有复杂的结构控制语句7.采用重载函数的目的是()。
A、实现共享B、提高速度C、使用方便,提高可读性D、减少空间8.派生类的对象对它的基类成员中()是可以访问的。
A、公有继承的公有成员B、公有继承的保护成员C、私有继承的公有成员D、公有继承的私有成员9.在类作用域中能够通过直接使用该类的()成员名进行访问。
A、私有B、保护C、任何D、公用10.友员的作用之一是()A、提高程序的运行效率B、实现数据的隐蔽性C、增加成员函数的种类D、加强类的封装11.假定一个类的构造函数为“B(int ax, int bx): a(ax), b(bx) {} ”,执行“Bx(1,2),y(3,4);x=y; ”语句序列后x.a 的值为( ) 。
程序设计技术重点知识点一、C语言的基本概念(数据类型,常量,变量,表达式的书写方法等)典型运算符的使用(++,--,复合赋值等)关系运算和逻辑运算基本控制结构(特别注意++,--运算符的进入条件表达式)*参考例题1、2、3(包括:习题2、一4,5)二、函数的递归调用(进制转换/例题4,最大公约数/例题5e0515等)函数的指针参数(处理实参/例题6 e0504,返回多个值/例题7实验七等)穷举算法的实现(爱因斯坦阶梯/例题8,数字拆分(水仙花数)/例题9,素数/例题10等)宏代换的使用(不带参数/例题11e0525,带参数/例题12e0527)全局变量和局部静态变量(例题13习题5、一7)文件处理简单应用(文件处理模式/例题14,统计文件中的特定数据/例题15,用文件保存数据处理结果)三、数组元素的引用、指针与数组(用指针引用数组元素/例题16习题8 一、5)结构体数组与指针的关系(用指针访问结构体数据成员)(例题17、18习题10,一1、4)字符串处理基础(字符串的拷贝、链接,字符的插入/删除,字符或子串的统计、插入/删除等)例题19、20、、、例题1、#include<stdio.h>#include<math.h>void main(){ int a=1,b=5,c;c=++a||b++;printf("%d,%d,%d\n",a,b,c);c=sqrt(a+b)>2;printf("%d\n",c);for(c=a;c++<b;)printf("c=%d\n",c);while(a!=5&&c<7){ a++;c--;}printf("a=%d,c=%d\n",a,c);if(c%2)printf("c=%d\n",c);}例题2、#include<stdio.h>void main(){ int x=0,y=-1,z=-1;x+=-z---y;printf("%d,%d,%d\n",x,y,z);}//结果:2,-1,-2例题3、#include<stdio.h>void main(){ int x=-3;x+=x-=x*x;printf("x=%d\n",x);}//结果:x=-24例题4#include<stdio.h>void main(){ void transto8(int n);int num;printf("?num: ");scanf("%d",&num);transto8(num);printf("\n");}void transto8(int n){ if(n!=0){ transto8(n/8);printf("%d",n%8);}}例题5#include<stdio.h>void main(){ int Gcd(int m,int n); int num1,num2;printf("请输入两个正整数:");scanf("%d,%d",&num1,&num2) ;if(num1<num2)num1=num1+num2,num2=num1-n um2,num1=num1-num2;printf("%d与%d的最大公约数是:%d\n",num1,num2,Gcd(nu m1,num2));}int Gcd(int m,int n){ int r;if((r=m%n)==0)return n;elsereturn Gcd(n,r);}例题6#include<stdio.h>void main(){ void swap(int *x,int *y); int a=3,b=5;printf("swap函数调用前:a=%d,b=%d\n",a,b);swap(&a,&b);printf("swap函数调用后:a=%d,b=%d\n",a,b);}void swap(int *x,int *y) { int t;t=*x,*x=*y,*y=t;}例题7#include<stdio.h>void main(){ int addmul(int x,int y,int *m);int a=10,b=20,sum,mul; sum=addmul(a,b,&mul);printf("sum=%d,mul=%d\n",s um,mul);}int addmul(int x,int y,int *m){ int s;s=x+y;*m=x*y;return s;}例题8#include<stdio.h>void main(){ int i,j;for(i=0;i<=100;i++)for(j=0;j<=100;j++)if(30*i==7*j+1)printf("输出的结果为:%d\n",7*j);}例题9#include<stdio.h>void main(){ int a,b,c,n;printf("水仙花数:");for(n=100;n<999;n++){ a=n/100;b=n%100/10;c=n%10;if(n==a*a*a+b*b*b+c*c*c)printf("%4d、",n);}printf("\n");}例题10#include<stdio.h>#include<math.h>void main(){ int a,b,num,i,k;printf("Input a & b:"); scanf("%d,%d",&a,&b); for(num=a;num<=b;num++) { k=(int)sqrt(num); //标准函数库sqrt的返回值是double类型for(i=2;i<=k;i++)//内层循环用来寻找2 sqrt(num)之间能被num整除的数if(num%i==0)break;//如果找到能够被num整除的数,则提前退出内层for循环if(i>k)printf("%d是素数。
\n");}}例题11#include<stdio.h>#define N 2#define M N+2#define MN 2*Mvoid main(){ int x=MN;printf("x=%d\n",x);}例题12#include<stdio.h>#define Min(x,y) (x)<(y)?(x):(y)void main(){ int a=1,b=2,c=3,d=4,t; t=Min(a+b,c+d)*1000;printf("t=%d\n",t);}例题13#include<stdio.h>int a,b,c,d;void main(){ void p(int a,int b);a=b=c=d;printf("%d,%d,%d,%d\n",a,b ,c,d);p(a,b);printf("%d,%d,%d,%d\n",a,b ,c,d);}void p(int a,int b){ static int c;a++,b++;c-=10,d+=5;if(a<3)p(a,b);printf("%d,%d,%d,%d\n",a,b ,c,d);}例题14#include<stdio.h>void main(){ FILE *f1;char c='A';int i;for(i=0;i<10;i++){ f1=fopen("data.txt","w" );fputc(c,f1);fclose(f1);}}例题15#include<stdio.h>void main(){ FILE *fp;int c1,c2,c3,c4;char c;c1=c2=c3=c4=0;if((fp=fopen("mydata.txt","r"))==NULL){ printf("Can't open file.\n");return;}c=fgetc(fp);while(c!=EOF){ c1=c1+1;if(c>='A'&&c<+'Z'||c>='a'& &c<='z')c2=c2+1;else if(c>='0'&&c<='9') c3++;else if(c=='\n')c4++;c=fgetc(fp);}printf("字符:%4d\n字母:%4d\n数字:%4d\n行数:%4d\n",c1,c2,c3,c4);fclose;}例题16#include<stdio.h>#define M 5void f(int *v);void main(){ int b[M][M]={{13,12},{0},{3,5, 8},{5,6}},i,j;f(b[1]);for(i=0,i<M;i++){ for(i=0,j<M;j++)printf("%3d",*(*(b+i)+j)); printf("\n");}}void f(int *v){ int i;for(i=0;i<M*(M-1);i++) *(v+i)+=3;}例题17#include<stdio.h>struct T{ int x;char c;};void main(){ void f(struct T b);struct T a={110,'z'};f(a);printf("%d,%c\n",a.x,a.c); }void f(struct T b){ b.x=20;b.c='y';}例题18#include<stdio.h>void main(){ struct T{ int x;int *y;}*p;int dt[]={10,20,30,40}; struct T d[]={50,&dt[1],70,&dt[2],8 0,&dt[3]};p=d;printf("%d\n",++p->x); printf("%d\n",(++p)->x);printf("%d\n",++(*p->y)); }例题19#include<stdio.h>#include<string.h>void main(){ int countsubstr(char *s,char c);char s1[100],ch,n;gets(s1);ch=getchar();n=countsubstr(s1,ch);printf("n=%d\n",n);}int countsubstr(char *s,char c){ int i=0,counter=0;while(s[i]){ if(s[i]==c)counter++;i++;}return counter;}例题20#include<stdio.h>#include<string.h>void main(){ int countsubstr(char *s,char *t);char s1[100],s2[100],n; gets(s1);gets(s2);n=countsubstr(s1,s2);printf("n=%d\n",n);}int countsubstr(char *s,char *t){ int i=0,counter=0;while(*(s+i)){ if(strncmp(s+i,t,strlen (t))==0)counter++;i++;}return counter;}。