当前位置:首页 » 编程语言 » 菜鸟网C语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

菜鸟网C语言

发布时间: 2023-02-09 03:23:31

⑴ 菜鸟提问 c语言关于快速排序

其实,最想说明的是那段交换的代码
R[j]^=R[i];
R[i]^=R[j];
R[j]^=R[i];
一定要排除 i==j 的情况。即自己与自己交换的情况。
如:
a=9;
a^=a;/*a=0*/
a^=a;/*a=0*/
a^=a;/*a=0*/
a就不再是10了。

#include<stdio.h>
#include<stdlib.h>
void quicksort(int R[],int s,int t)
{
int i,j;
int temp;
if(s<t)
{
temp=R[s];/*选第一个数作为参照*/
/*while(i!=j)不要用这种方法判定循环结束,万一i==j-1,i++,j--后 i〉j了,!=这个条件就救不了你了*/
for(i=s+1,j=t;i<=j;i++,j--)/*不包括参照数,进行左右阵营站队*/
{
while(j>i && R[j]>=temp)/*R[j]>=temp不要 = 也行,加了更好,毕竟相等的无论站左站右,哪边都无所谓*/
j--;
while(i<j && R[i]<=temp)
i++;
if(i!=j){/*i千万不能等于j*/
R[j]^=R[i];
R[i]^=R[j];
R[j]^=R[i];
}
}
i--;
if(R[s]<R[i])i--;/*调整i的值,使i指向最后一个小于等于参照数的位置*/
/*将参照数 与 最后一个小于等于参照数的数进行交换,这样就真正把左右两个阵营分开了*/
R[s]=R[i];
R[i]=temp;
quicksort(R,s,i-1);
quicksort(R,i+1,t);
}
}
int main(void)
{
int i;
int a[]={5,3,2,1,9,8,7,4,5};
quicksort(a,0,sizeof(a)/sizeof(int)-1);
for(i=0;i<sizeof(a)/sizeof(int);i++)
printf("%d ",*(a+i));
return 0;
}

⑵ 菜鸟怎么样学习C语言

1、学习C语言,要从入门到精通,需要读哪些书(从简单的到难的排序,越详细越好,最好都能注释下选择这本书的理由)?

入门阶段:还是老谭那本。
理由:虽然不能说它写得有多好,但是你现在要做的是入门,要快速的掌握c的基本语法,这本书很好理解,能够让你在最短的时间内大致掌握这门语言的概更。

第二阶段:《c程序设计语言》(The C Programming Language)和《C语言解惑》(The C puzzle book)
理由:《the c programming language》号称c语言圣经。其实它也只是一本介绍基础语法的书,不做入门教程是因为对于初学者来说,它难度稍大,之所以推荐,是因为它能让你---系统而严密的---把C语言知识构架整理一遍。《c语言解惑》,系统的整理了c语法中容易让你产生迷惑或容易犯错的地方(如a+++++b等),这时候你才算真正开始学习c语言了.(以上两本现在出重印了,应该在书店可以买到)

第三阶段:《C陷阱与缺陷》(C Traps and Pitfalls)和《高质量c/c++编程指南》
理由:《c陷阱与缺陷》是让对c的理解有质变得一本书,如如何理解(*(void(*)())0)()等问题,我的感觉是看完这本书让我真正从小菜鸟变成了老菜鸟。《高质量...》,终于有一本国产的了,呵呵,我认为这本书是把你从土匪变成正规军的最好指南,该书涉及编程风格、效率、重载、健壮性等一些列之前很难注意的问题。(以上两本《c陷阱...》已绝版,不过网上可以下载到中英文版,《高质量...》本身就是网络书,很容易找到)

其它推荐书:《c专家编程》《c和指针》
说实话这两本书我并没有看过(或看完),但有口皆碑,都是经典之作,不过都已经绝版,仔细找找网上有下载的。

2、有哪些好的C语言练习(越难的越好)?
对语言本身的练习其实就是你对它的理解,用得多了,注意得多了,自然就ok了。其它思维上的练习主要是算法和数据结构方面的,严老的《数据结构题集(C语言版)》如果你能做完就相当了不起了。

3、要学精C语言,还要具备哪些条件?
其实c语言也只是一个工具而已,就像锄头一样,你每天挖地锄田自然就精通它了。只要不是白痴,应该都没有问题。

4、C语言学完后接下去要学哪些语言好?
这个我就没有资格回答了,因为除了少量汇编和c++,我大部分只用到了c,不过也许是一脉相承的c++吧。c是面向过程的语言,学习c++面向对象的思想。

5、各位网友如果在学习计算机语言方面还有一些独到的见解,欢迎提出!
不是我提出的,不过真的很经典——“天下程序一大抄”,呵呵。

⑶ 零基础如何学习c语言有什么推荐的入门书籍

C语言本身并不难学,或者甚至可以说C语言的语法是最简单的,所以零基础没有什么问题。网上有很多教程,自学网站,以及免费的视频。重点在于要多去练习。

个人推荐C语言入门教材有:

1.非常经典的《C语言程序设计》 谭浩强版

2.入门加深入一点的《c primer plus第6版中文版》

也可以在网上学习,有不错的网站:

1.菜鸟教程 C语言模块:https://www.runoob.com/cprogramming/c-tutorial.html

2.C语言自学视频:https://www.hu.com/question/19668080

C语言学习非常容易,最重要的是多练习,多编程。

⑷ 菜鸟c语言学习者,fopen()的问题。

其实你写的程序用void和int都是一样的,如果什么都不写的话,默认为int。

也就是说main函数也有返回值,返回给系统一些程序执行的信息。

比如
#include "stdio.h"
int main()
{
FILE* p;
p = fopen( "f://a.txt" , "w+" );
if( p == NULL ) // 文件打开失败;
return -1;

/*
...程序
*/

return 0;
}

这样系统就可以根据程序返回的值来判断其运行情况了。
在Linux下,命令echo $?可以看到这个返回值。win下我就不知道了。

平时你什么都不加的写程序,如果最后没有return 0;的话,往往会有一个waring,原因就是默认main函数返回int值但程序里没有。

你平时写一些练习性质的小程序,用void都不会有问题的。还有,这些问题不值50的,你0分我也给你回答。
另外,团IDC网上有许多产品团购,便宜有口碑

⑸ C语言菜鸟

感觉楼主的代码给的一点问题
在z还没有赋初值时就有了
if(z<0)
这个语句

二级又怎么样,你先把它在自己的电脑上编译运行一下 就没有一个答案是正确的
那个更具有说服力

⑹ 菜鸟在线请问c语言里:sizeof怎样用法

sizeof是计算对象所占的字节个数,通常用来查看变量或结构体等所占的字节个数。

比如:
int a;
sizeof(a); // 计算变量a所占的字节数,等价于sizeof(int)
struct
{
int num;
char name[];
int age;
}person;
sizeof(person); // 计算整个结构所占的字节总数

⑺ c语言 菜鸟 设有函数调用语句 func((a1,a2,a3),(a4,a5)); 则函数func中有几个形参 答案是2 为什么啊

题目问的是func中的形参有几个,答案是2没有问题。
(a1,a2,a3)这是一个表达式,表达式的值为最后一个逗号后面表达式的值,即a3的值,这是考察逗号运算符的知识点。
同理(a4, a5)表达式值为a5,所以func()调用等价于func(a3, a5),您想想形参有几个,2个没问题的,对吧。

⑻ C语言在线工具菜鸟工具能不能输入两次数据

C语言在线工具菜鸟工具能输入两次数据。
每次要求用户输入时,可以通过调用标准库函数获取用户输入,如:getc(),gets(),getchar(),scanf("%d",&a)等等,你调用几次,程序就会要求用户输入几次,这个问题很容易解决的。//参考代码如下:
#include
#define N 5
int main()
{
int i,a[N],j;
for(i=0;i scanf("%d",&a[i]);
i=N;
j=0;
while(i--)//方法二
scanf("%d",&a[j++])
return 0;
}
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

⑼ 菜鸟C语言请教,反斜杠的意义

反斜杠有两种意义:

  1. 续行符。预处理时把行末的反斜杠和那个换行符一同去除。

  2. 在字符和字符串字面量里引起转义字符,数值转义码和统一字符名称。在示例中,不需要转义也不影响字符串的含义。如果是字符,就需要对'进行转义:''';同样的,在字符常量里可以不对"进行转义:'"'

  3. 转义字符包括a  f v \ ' " ?。数值转义码是ddd 和 xdd的形式。其中d分别为八进制数字和十六进制数字。统一字符名称的形式是udddd和Udddddddd,其中d都是十六进制字符。

⑽ 菜鸟的C语言问题……

前两行应该明白吧,就是定义了整形的i和sum变量,并未sum赋值为0,因为下面要执行累加,累加还没开始的话sum就是0嘛。
然后一个循环进行控制,i从1加到50一共循环50次,每次对应的一个i去执行if(!(i%7)) 判断看看是否符合条件。
重点要解释的那两句如下:
if(!(i%7)) sum+=i; 就是加入这个条件成立,那么执行这个语句,否则不管这个语句。
①(!(i%7))是判断条件,i%7这里这个%是取模运算也就是求余数,比如3%7=3,7%7=0等。取模运算必定会得到一个结果,这个结果肯定是个int类型的数字,我们把这个数字分为两组一组是0另一组是非0。如果是0,那么(!(i%7))就是(!0),通过逻辑非运算符(就是那个叹号)运算,括号里面的逻辑值就是!0也就是1了,1是逻辑真,那么if条件为真,执行sum+=i;语句。否则如果是个非0的,
(!(非零))也就是(!(!0)),非非0还是0(否定的否定嘛),所以if条件为假,不执行sum+=i;。
②sum+=i;什么意思呢,写成你能看懂的就是sum=sum+i。比如sum-=i就是sum=sum-i,乘*和除/同理。
最后输出sum的值。

这个程序的意思就是累加1~50范围内所有的能够被7整出的整数,并输出这个累加和。