c语言函数编程题技巧 c语言函数题是什么意思

C语言程序设计题,输入1个数,判断是奇数还是偶数,用调用函数的方法#include
"stdio.h"
int
s(int
a)
{
return(a%2);
}
main()
{
int
x;
printf("请输入一个整数:");
scanf("%d",x);
if(s(x)==1)
printf("%d是一个奇数",x);
else
printf("%d是一个偶数",x);
}
先编写一个判断是素数还是偶数的函数 , 偶数就返回0,否则就返回1,然后在主函数调用函数 , 根据返回值判断素数还是偶数 。
如何用c语言求函数导数1、首先要有函数,设置成double类型的参数和返回值 。
2、然后根据导数的定义求出导数,参数差值要达到精度极限,这是最关键的一步 。
3、假如函数是double fun(doube x),那么导数的输出应该是(fun(x)-fun(x-e))/e,这里e是设置的无穷小的变量 。
4、C由于精度有限,因此需要循环反复测试,并判断无穷小e等于0之前,求出上述导数的值 。二级导数也是一样,所不同的是要把上述导数公式按定义再一次求导 。这是算法,具体的实现自己尝试编程 。
C语言的数据长度和精度都有限,因此用C语言编程求的导数并不精确,换句话说C语言编程不适合求导和极限 。
扩展资料:
举例说明:
一阶导数,写一个函数 y = f(x):
float f(float x){ ...}
设 dx 初值
计算 dy
dy = f(x0) - f(x0 dx);
导数 初值
dd1=dy/dx;
Lab:;
dx = 0.5 * dx;// 减小步长
dy = f(x0) - f(x0 dx);
dd2=dy/dx;// 导数 新值
判断新旧导数值之差是否满足精度,满足则得结果,不满足则返回
if (fabs(dd1-dd2)1e-06 ) { 得结果dd2...}
else { dd1=dd2;goto Lab;} 。
C语言函数编程题修改后的C语言程序:
#include stdio.h
void triangle(int g)
{
int n=1, m;/* 修改处1 */
for(n;n=g; n)
{
for(m=1;m=2*n-1;m) /* 修改处2 */
putchar('*');
putchar('\n');
}
}
void rectangle(int g)
{
int n=1, m;/* 修改处3 */
for(n;n=g;n)
{
for(m=1;m=3;m)/* 修改处4 */
putchar('*');
putchar('\n');
}
}
int main()
{
int i,k;
printf("请输入行数(大于3):");
scanf("%d",i);
printf("请选择图形:1---三角形\t2---矩形\t3---小旗 :");
scanf("%d",k);
if(k==1)
{
triangle(i);
}
if(k==2)
{
rectangle(i);
}
if(k==3)
{
triangle(i);
rectangle(i);
}
return 0;
}
C语言考试技巧一.特点和注意事项 1、填空题
(1)上机填空题一般包含2个(或3个)空 。(2)要填空的位置用___、___、___表示 。
(3)考生在考试时应删除标识___、___、___后填入相应的符号 。
特别要注意的是:只能在要填空的位置上进行修改,不要添行、删除、合并或分解,不要改动程序行的顺序,更不要自己另编程序 。2.改错题
(1)上机改错题中有2个(或3个)错误需要修改 。
(2)试题中用“/******found******/”来提示在下一行(或下面第二行)有错 。(3)错误的性质基本分为语法错误和逻辑错误,也有些试题要求把语句添加在下划线处 。
(4)特别要注意的是:只能在出错的行上进行修 二.做题技巧
以下是对上机考试改错题的做题方法和总结,改错题的错误主要分为以下几类:
一般情况 , 错误主要分为语法错误和逻辑错误 。
先检查语法错误,编译程序后发现没有错误及警告,说明没有语法错误 , 只有逻辑错误;逻辑错误必须根据程序的功能及预期结果来考查 。
因此,对于程序改错题,应先编译查找其中的语法错误 , 通过编译器的提示容易找到错误的地方及原因,然后再寻找逻辑错误 。修改了语法错误后再次编译,直到修改完所有的语法错误 。而查找逻辑错误时,需要运行程序根据结果来检查 。
1、if或while语句
若错误行是if或者while语句 , 则要注意以下点: 1)首先判断是否正确书写if或while关键字;
2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号; 3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符; 4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(==);
若if条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号; 2、for语句
若错误行是for语句,则要注意以下几点: 1)首先判断for有没有书写正确;
2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号 。3、记住是分号(;) , 不是逗号(,)!
再者,分析for中的三个表达式,是否符合题意; 第一个表达式表示起始条件,第二个表达式表示终止条件,
第三个表达式表示循环变量的变化 。4、return语句
若错误行为return语句 , 则要注意以下几点: 1)首先看是不是正确书写return关键字;
2)然后看是不是缺少分号,若是则加上分号即可;
3)再者判断return后的变量或表达式是否正确;
这种错误需要根据题意来分析,分析返回变量或表达式的值和类型 。5、赋值语句
若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确 。6、定义语句
若错误行是定义语句 , 则要注意: 1)首先分析变量类型是否符合;
2)然后分析赋初值是否正确,求和初值赋0,求积初值赋1;
3)若以上均不是,则看是不是少定义了某个变量或少了花括号; 7、关键字拼写错误 。如:main-mian(错误)printf - pirntf (错误)
Return- return(错误)while- While (错误)
8、表达式错误问题
表达式错误占的份量最多,并且没有统一的改法,我们只能通过题目要求来分析并修改) ,
1)若错误行中有整数1除以某个表达式或变量时 , 必须把整数1改为1.0;若变量或表达式是整型时,则只能进行强制类型转换 。
2)变量必须先赋值,后才参与运算,没有赋值就不能参与运算;例如,long k;k*=num;
3)运算符书写错误,例如,把/写成\(num\=10);,==写成= 。4)丢失括号() 9、字符串类问题
1)若错误行中有字符串结束符,则特别要要注意结束符有没有写错(‘\0’不要写成"\0”) 。
2)新组建的字符串一定要加结束标识符(‘\0’); 3)要区分清楚字符‘o’和数字‘0’ 。
4)字符串复制、比较必须使用用字符串处理函数(strcpy或strcmp)实现 , 不能用赋值语句或关系运算符 。10、指针类问题
若错误行中有指针变量 , 并且该变量名之前没有指针运算符,则般都是加上指针运算符;即注意p和*p的区别; 11、函数首部类问题:
若错误行是函数首部,则要注意:
1)首先看该行最后有没有分号,若有则删掉分号;若中间有分号则要改为逗号;
2)形参和实参类型不一致问题
① 若实参是个地址或数组名或指针变量名 , 则对应的形参肯定是指针或数组;
②若实参是二维数组名,则对应的形参应该是指针数组或是二维数组; ③若后面用到形参时有指针运算符,则该形参应为指针类型;
④若形参是二维数组或指向M 个元素的指针变量,则该二维的长度必须与main中对于数组的第二维的长度相同 。3)函数类型不一致问题
①若函数中没有return语句,则函数类型为void;
②若函数中有ret urn语句,则函数的类型必须与rerun后的变量类型一致;
记住,调用函数的类型与main中的该函数的类型一致! 12、语法错误问题:
1)语句缺少分号 。若错误号中语句没有以分号结束则加上分号;
2)变量名不一致 。C语言是区分大小写的 , 若错误行中有大写字母一般都改为小写字母;
3)若错误行中有一条横线,则必须将横线删除再填空 。填空题中亦是如此 。13、逻辑错误问题:
这种题型主要是表达式错误,占的题量比较多而且没有统一的做题方法,需要我们具体问题具体分析 。对于逻辑错误,可按下列步骤查找:
①先读试题,看清题目的功能要求 。
②通读程序,看懂程序中算法的实现方法 。③细看程序,发现常见错误点 。14、书写错误问题:
特别注意我们的注释部分,注释是以/*开始,以*/结尾,不能有多余的 , 有也只能在/*和*/里面 。注意,比如“/***注释部分*****/*/”是错误的!
二、编程时容易犯的错误
1.书写标识符时,忽略了大小写的区别
C语言认为大些字母和小写字母时两个不同的字符,如在编译程序过程中,系统会把a和认为时两个不同的变量名 。习惯上,符号常量名用大写表示,变量名用小写表示,以增加程序的可能性 。
2.忽略了变量的类型 , 进行了不合法的运算
3.忽略了“=”与“= =”的区别;C语言中,“=”是赋值运算符,“= =”是关系运算符
4.忘记加分号
考生应特别注意这种情况,分号是C语言中不可缺少的一部分,语句末尾必须有分号,但有时候千万不能加;
5.输入变量时忘记加地址运算符“” , 而在不应加“”的位置加了地址运算符
(1)忘记加“”的情况 。
如int a,b;scanf(“%d%d”,a,b);
此时 , 无法正确给a和b读入数据 。scanf函数的作用是:按照a、b在内存中所分配的地址将a、b的值存进去 。“a”指a在内存中的地址,因此正确的书写格式为scanf(“%d%d”,a,b); 。
(2)多加“”的情况 。如int str[ ];scanf(“%s”,str);
C语言编译程序对数组名的处理是:数组名代表数组的起始地址 , scanf函数中的输入项是字符数组名 , 因此不必再加地址符,应该去掉 。
6.输入数据的方式余要求格式(通配符)不符 。例如:scanf(“%d,%d”,a,b);
C规定:如果在“格式控制”字符串中,除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符 。下面输入是合法的:3,4
此时不用逗号而用空格或其他字符是不对的,如:3 4(中间为空格)3:4(中间为冒号);
三、相关概念
(1)素数:定义是除了能被1和自身整除外,不存在其他任何能整除该数的自然数 。因此,在判断一个数是否为素数时,只要有除了1和本身能整除它 , 还有一个数能整除它,就判定此数不是素数 。
(2)判断一个年份是否为闰年:如果年份能被4 整除但是不能被100整除,或者能被400整除,这两种情况满足之一都是闰年 。
(3)利用选择法进行从小到大的排序 。选择法的思路为:把第一个元素与其后面的元素比较,如果比后面的大,则交换,比较完所有的元素后,第一个位置的元素是最小的元素;在把第二个元素与其后面的元素进行比较,结果是除了第一个元素外,第二个元素是最小的元素;以此类推 。
(4)数的按位分离算法是:对10取模求个位上的数字,整除10后再对10取模求十位上的数字 , 整除100后再对10取模求百位上的数字 。
(5)最大公约数的算法是:(1)若nm,则用n除以m求余数r;(2)若r=0 , 则m为最大公约数,若r≠0,则将r赋值于m,m赋值于n,继续用n除以m求余数r;(3)直到r=0,m为最大公约数 。根据算法判断每一条语句是否正确 。(6)求最小公倍数的算法:等于两个数的乘积除以它们的最大公约数 。(7)矩阵时以行为外循环 , 列为内循环,可以同时计算周边元素的和 。
C语言函数编程问题/*第一道题*/
#includestdio.h
int main()
{
char a[100],ch;
int i=0,j,kind=1,count,n;
ch=getchar(); /*这里输入字符串*/
while(ch!='\n')
{
a[i]=ch;
ch=getchar();
}
n=i;
for(i=0;in;i)
printf("%c ",a[i]);
for(i=0;in;i) /*统计字符的种类*/
{
kind=n;
for(j=i-1;j=0;j--)
if(a[j]==a[i])
kind--;
}
printf("you %d zhong zi fu\n",kind);
for(i=0;in;i) /*计算各种字符的个数*/
{
count=1;
for(j=i 1;jn;j)
{
if(a[i]==a[j])
{
count;
a[j]='\0';
}
}
if(a[i]!='\0')
printf("%c: %d\n",a[i],count);
}
}
/*第二题*/
#include stdio.h
#include string.h
#include stdlib.h
process(char *p[10])
{
int i,j;
char *temp;
for(i=0;i10;i)
{
for(j=0;j10;j)
{
if(strcmp(p[i],p[j])==-1)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
for(i=0;i10;i)
printf("%s\n",p[i]);
}
main()
{
char *p[10];
int i;
for(i=0;i10;i)
{
p[i]=(char*)malloc(20*sizeof(char));
scanf("%s",p[i]);
}
process(p);
}
/*第三题*/
#include stdio.h
shuRu(int a[10])
{
int i;
for(i=0;i10;i)
scanf("%d",a[i]);
}
shuChu(int a[10])
{
int i;
for(i=0;i10;i)
printf("%d ",a[i]);
printf("\n");
}
operate(int a[10])
{
int i,temp1,temp2,max,min,maxc=0,minc=0;
max=min=a[0];
for(i=0;i10;i)
{
if(maxa[i])
{
max=a[i];
maxc=i;
}
else if(mina[i])
{
min=a[i];
minc=i;
}
}
temp1=a[9];
temp2=a[0];
a[9]=min;
a[minc]=temp1;
a[0]=max;
a[maxc]=temp2;
}
main()
{
int a[10];
shuRu(a);
operate(a);
shuChu(a);
}
【c语言函数编程题技巧 c语言函数题是什么意思】c语言函数编程题技巧的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于c语言函数题是什么意思、c语言函数编程题技巧的信息别忘了在本站进行查找喔 。

    推荐阅读