当前位置:首页 » 编程语言 » C语言必须知道的300个问题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言必须知道的300个问题

发布时间: 2022-02-10 03:21:44

1. c语言问题

数学水平是要的,重要的是逻辑思维!
函数也是要的,没那你就写不出什么好的程序!
这函数又和课本上的数学函数有点不一样!
但不象数学函数那么难,但比数学函数灵活,也有意思。
可不是要所有课本的数学函数!
课本数学可以不好,但是你逻辑思维一定要好,熊猫烧香知道吧,写这程序的人只是中专毕业!!

英语前期是不需要的!因为C里面只要记一点函数名!都很简单的英语!
后期是要英语好的!好的C书都是英文的!(对此我很气愤!!!)
C既是高级语言,又是低级语言;之后在学C++;
编程序是小意思的!
只要你学的好,那么个小病毒又算什么呢?

学C的话你要有很强的毅力!
不要只是为了好玩才学!!!!
那你就不要学了!
如果你只是一点兴趣时间又很多的话不妨学学!
C的理论比较烦,但是不多!

还有什么问题我将继续为你解答!
学之前好好想想!
我邮箱 [email protected]
邮件中请注名C语言,要不我会当垃圾邮件处理的!
你可以发来;愿意为你解答一些问题;
我也只能算个小菜鸟

2. c语言关于结构体的问题

c是指针,必须指向一个有效的地址,而且要用->访问成员
你没给c赋值,所以报错

3. c语言问题

%*d
忽略一次作整形的输入
所以30赋给了J
k还是初始值0

4. 请问各位关于C语言得问题

那个没有问题的,
是switch后面没有加括号,
输入的格式也不清晰,
而且输出必须要放到分支外头的
我在你的基础上改了下,
#include<stdio.h>
main()
{
int a,b,c,d;
float sum;
printf("please input a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
sum=18*a+132*b+4.5*c;
d=sum/100;
switch(d)
{
case 1:sum=sum*0.95; break;
case 2:sum=sum*0.94; break;
case 3:sum=sum*0.93; break;
case 4:sum=sum*0.92; break;
default:sum=sum*0.9;
}
printf("%.2f",sum);
}

5. C语言入门知识

char a[20],b[20],c[20];上面的a,b,c都是数组变量,在定义时已经为其分配栈内存,而char (*str1)[20],(*str2)[20],(*str3)[20]; 只是分配了4个字节的内存来保存指针变量(即变量本身),而指针的值(即指向)还没有,所以这些指针还不能保存数据!--------------char (*str1)[20],(*str2)[20],(*str3)[20]; str1 str2 str3均为指针,都指向长度为20的char数组.你只定义了指针,但是没有对其进

6. c语言问题

C语言中,变量分为全局变量和局部变量;也可以这样分:自动变量,静态变量.前者是按变量作用范围来分的,而后者是按变量存储方式来分的.
如果按存储占用空间来分,可以是整型变量,字符型变量,浮点型变量等.当然还有数组,结构体变量等.
C语言还有一个重要变量:指针变量.它存放的值是一个内存地址.操作系统变量
C语言中变量名是有大小写之分的,如SUN与sun就是两个不同的变量名。
另一点,声明变量时,可以不用声明就直接赋值来决定变量类型的语言如(javascript,flash cs3.0以前,等),这类语言变量的声明通常被称为弱类型,而如(c++等)必须先声明,后使用,而且声明时必须确定变量类型,这种就是严格的数据类

整型量

整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。

整型常量

1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13) 0101(十进制为65) 0177777(十进制为65535)
以下各数不是合法的八进制数:
256(无前缀0) 03A2(包含了非八进制数码) -0127(出现了负号)

2.十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)
以下各数不是合法的十六进制整常数:
5A (无前缀0X) 0X3H (含有非十六进制数码)

3.十进制整常数
十进制整常数没有前缀。其数码为0~9。
以下各数是合法的十进制整常数:
237 -568 65535 1627
以下各数不是合法的十进制整常数:
023 (不能有前导0) 23D (含有非十进制数码)

在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:
十进制长整常数 158L (十进制为158) 358000L (十进制为-358000)
八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536)
十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536)

长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如: 358u,0x38Au,235Lu 均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。

整型变量

整型变量可分为以下几类:
1.基本型
类型说明符为int,在内存中占2个字节,其取值为基本整常数。
2.短整量
类型说明符为short int或short'C110F1。所占字节和取值范围均与基本型相同。
3.长整型
类型说明符为long int或long ,在内存中占4个字节,其取值为长整常数。
4.无符号型
类型说明符为unsigned。
无符号型又可与上述三种类型匹配而构成:
(1)无符号基本型 类型说明符为unsigned int或unsigned。
(2)无符号短整型 类型说明符为unsigned short
(3)无符号长整型 类型说明符为unsigned long
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。
类型说明符 数的范围 分配字节数
int -32768~32767 ■■
short int -32768~32767 ■■
signed int -32768~32767 ■■
unsigned int 0~65535 ■■
long int -2147483648~2147483647 ■■■■
unsigned long 0~4294967295 ■■■■
整型变量的说明
变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)

在书写变量说明时,应注意以下几点:
1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
2.最后一个变量名之后必须以“;”号结尾。
3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
[Practice] //1int a,b;
short int c;
short d=100;
a=d-20;
b=a+d;
c=a+b+d;
d=d-a+c-b;'Vtable
a,2,0
b,2,0
c,2,0
d,2,100
of Vtable
'Vupdate
1,0;2,0
3,0
4,100
1,80
2,180
3,360
4,200
of Vupdate
of Practice
[Practice] //2int a=5;
int b=9;
long int c;
long d;
c=a+b-7;
d=a*b*c;
c=d*d*d;
a=c-d;'Vtable
a,2,5
b,2,9
c,4,0
d,4,0
of Vtable
'Vupdate
1,5
2,9
3,0
4,0
3,7
4,315
3,31255875
1,-5112
of Vupdate
of Practice
[Practice] //3int a=6,b=19;
unsigned int c;
int d;
c=a-b+7;
d=b*c;
a=b+c+d;
b=-a;'Vtable
a,2,6
b,2,19
c,2,0
d,2,0
of Vtable
'Vupdate
1,6;2,19
3,0
4,0
3,65530
4,-114
1,-101
2,101
of Vupdate
of Practice
void main(){
long x,y;
int a,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=x+a;
d=y+b;
printf("c=x+a=%d,d=y+b=%d\n",c,d);
}
将main说明为返回void,即不返回任何类型的值
x,y被定义为long型
a,b,c,d被定义为int型
5->x
6->y
7->a
8->b
x+a->c
y+b->d
显示程序运行结果 of long x,y;
int a,b,c,d;
c=x+a;
d=y+b;
从程序中可以看到:x, y是长整型变量,a, b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍。

实型量

实型常量

实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式: 十进制数形式指数形式
1.十进制数形式
由数码0~ 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。
2.指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 (等于0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点) E7 (阶码标志E之前无数字) -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E (无阶码)
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。例2.2说明了这种情况:
void main()
{
printf("%f\n%f\n",356.,356f);
}
void 指明main不返回任何值 利用printf显示结果 结束

实型变量

实型变量分为两类:单精度型和双精度型,
其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
实型变量说明的格式和书写规则与整型相同。
例如: float x,y; (x,y为单精度实型量)
double a,b,c; (a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
void main()
{
float a;
double b;
a=33333.33333;
b=33333.33333333333333;
printf("%f\n%f\n",a,b);
}
此程序说明float、double的不同
a ■■■■
b ■■■■■■■■
a<---33333.33333
b<---33333.33333333333;;
显示程序结果
此程序说明float、double的不同
float a;
double b;
a=33333.33333;
b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。
[Practice] //floatint a=32;
float b;
double d;
b=12345678;
d=b*100;
d=d+a;
d=d+58.123456;'Vtable
a,2,32
b,4,0.0
d,8,0.0
of Vtable
'Vupdate
1,32
2,0
3,0
2,12345678.00000
3,1234567800
3,1234567832
3,1234567890.123456
of Vupdate
of Practice
[Practice] //1int a=543;
float b;
b=123.123962+a;
b=b-100;
a=b;'Vtable
a,2,543
b,4,0.0
of Vtable
'Vupdate
1,543
2,0.0
2,123.123962
2,23.123962
1,23
of Vupdate
of Practice

字符型量

字符型量包括字符常量和字符变量。

字符常量
字符常量是用单引号括起来的一个字符。例如'a','b','=','+','?'都是合法字符常量。在C语言中,字符常量有以下特点:
1.字符常量只能用单引号括起来,不能用双引号或其它括号。
2.字符常量只能是单个字符,不能是字符串。
3.字符可以是字符集中任意字符。但数字被定义为字符型之后就
不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算。

转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符"\"
\' 单引号符
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜线,\XOA表示换行等。转义字符的使用
void main()
{
int a,b,c;
a=5; b=6; c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
}
此程序练习转义字符的使用
a、b、c为整数 5->a,6->b,7->c
调用printf显示程序运行结果
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程序在第一列输出a值5之后就是“\n”,故回车换行;接着又是“\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空二格再输出c 值7后又是"\n",因此再回车换行;再空二格之后又输出a值5;再空三格又输出b的值6;再次后"\t"跳到下一制表位置(与上一行的6 对齐),但下一转义字符“\b”又使退回一格,故紧挨着6再输出c值7。

字符变量
字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
例如:
char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的
十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予'x'和'y'值: a='x';b='y';实际上是在a,b两个单元内存放120和121的二进制代码: a 0 1 1 1 1 0 0 0
b 0 1 1 1 1 0 0 1
所以也可以把它们看成是整型量。 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时, 只有低八位字节参与处理。
main()
{
char a,b;
a=120;
b=121;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a ■ b ■
a <-- 120
b <--- 121
显示程序结果

本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。
void main()
{
char a,b;
a='x';
b='y';
a=a-32;
b=b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a,b被说明为字符变量并赋予字符值
把小写字母换成大写字母
以整型和字符型输出
本例中,a,b被说明为字符变量并赋予字符值,C语言允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于大小写字母的ASCII 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。
[Practice] //charint a=49;
char b;
char d;
b=a+10;
d=a+b;'Vtable
a,2,49
b,1,随机
d,1,随机
of Vtable
'Vupdate
1,49
2,随机
3,随机
2,';'
3,'l'
of Vupdate
of Practice
[Practice] //char c1,c2;
c1='a';c2='b';
c1=c1-32;c2=c2-32;'Vtable
c1,1,随机
c2,1,随机
of Vtable
'Vupdate
1,随机;2,随机
1,'a';2,'b'
1,'A';2,'B'
of Vupdate
of Practice

字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program:" , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别:
1.字符常量由单引号括起来,字符串常量由双引号括起来。
2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。
这是与BASIC 语言不同的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。
4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串结束的标志。例如,字符串 "C program"在内存中所占的字节为:C program\0。字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。
'a'在内存中占一个字节,可表示为:a
"a"在内存中占二个字节,可表示为:a\0符号常量

符号常量
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 常量
其中#define也是一条预处理命令(预处理命令都?quot;#"开头),称为宏定义命令(在第九章预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。
#define PI 3.14159
void main()
{
float s,r;
r=5;
s=PI*r*r;
printf("s=%f\n",s);
}
由宏定义命令定义PI 为3.14159 s,r定义为实数 5->r PI*r*r->s
显示程序结果 float s,r; r=5; s=PI*r*r; 本程序在主函数之前由宏定义命令定义PI 为3.14159,在程序中即以该值代替PI 。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。

7. C语言必须知道的300个问题的目录

第1章 初识C语言 1
问题1 C语言是如何发展起来的? 2
问题2 什么是ANSI标准? 2
问题3 C语言编写程序的优点有哪些? 3
问题4 如何规避C语言的不足之处? 4
问题5 C语言的应用领域有哪些? 5
问题6 什么是C99标准?与C89标准
相比,C99标准有哪些
新特性? 6
问题7 C语言是C++的子集吗? 10
问题8 C语言程序的开发过程是
怎样的? 11
问题9 什么是编译程序和解释程序? 12
问题10 ANSI C的编译限制有哪些? 13
第2章 一个简单的C程序 14
问题11 C语言的入口函数是什么? 15
问题12 C语言程序由哪些部分组成? 16
问题13 如何在Turbo C 2.0中输入一个
程序? 16
问题14 如何在Visual C++ 6.0中运行
一个C程序? 18
问题15 如何在Visual C++ 2008中运行
一个C程序? 22
问题16 如何提高程序的可读性? 26
问题17 什么是关键字?C语言的关键
字有哪些? 27
问题18 什么是标识符?使用标识符的
注意事项是什么? 29
问题19 void关键字都有哪些用途? 30
问题20 什么是匈牙利命名约定?它是否
是好的约定? 31
第3章 算法入门 33
问题21 为什么说算法是程序设计的
灵魂? 34
问题22 算法的特性有哪些? 34
问题23 如何评价一个算法的好坏? 35
问题24 算法的表示方法都有哪些? 36
问题25 算法的基本结构是什么? 40
问题26 算法有哪几类? 42
问题27 算法的效率度量方法有哪些? 42
问题28 什么是算法的时间复杂度? 43
问题29 什么是算法的空间复杂度? 44
问题30 什么是分治法算法思想? 45
第4章 常用数据类型 46
问题31 声明变量和定义变量的区别
是什么? 47
问题32 在开发时如何决定使用哪种
数据类型? 48
问题33 什么是常量?如何区分常量
和变量? 48
问题34 各种数据类型所占的内存是
多少? 49
问题35 字符与字符串的差别有
哪些? 50
问题36 变量是否必须初始化? 51
问题37 为什么会发生数据溢出?如何
避免数据溢出? 52
问题38 局部变量和全局变量能否
重名? 53
问题39 全局变量可不可以定义在可被
多个.C文件包含的头文件中?
为什么? 53
问题40 如何引用一个已经定义过的
外部变量? 54
问题41 全局变量和局部变量的存储
方式有什么区别? 55
问题42 整型常量的存储形式是
怎样的? 55
问题43 整型常量的表示形式有
哪几种? 56
问题44 使用了没定义的变量会有什么
现象? 56
问题45 static关键字有什么作用? 57
问题46 const关键字有什么作用? 59
问题47 const与#define相比有何
优点? 60
问题48 sizeof不是函数吗? 61
问题49 float类型数如何与0值
比较? 63
问题50 静态变量与自动变量的区别
有哪些? 64
第5章 运算符与表达式 66
问题51 运算符的优先级和结合性是
怎样的? 67
问题52 如何区分“,”是运算符还是
分隔符? 68
问题53 C语言如何解释x=a+=b+c? 69
问题54 x=x+1,x+=1,x++,哪个效率
最高? 70
问题55 什么是运算符的目?怎样进行
区分? 70
问题56 使用“++”和“--”运算符需要
注意些什么? 71
问题57 如何理解i+++j? 71
问题58 赋值表达式中什么是左值和右值?数组名作为左右值时又具有怎样的意义? 72
问题59 如何确定条件表达式的结果的
数据类型? 73
问题60 “%”运算符是否可以对小数
进行运算? 74
问题61 “/”运算符得到的结果一定为
整数吗? 75
问题62 在进行多种数据类型混合运算
的时候,数据类型自动转换有
哪些规则? 76
问题63 C语言中有哪些简化的运算
表达式? 77
问题64 使用逻辑表达式需要注意哪
几点问题? 77
问题65 i++*i++这样的表达式为什么
不能得到预期的结果? 78
问题66 a[i]=i++;这样的代码正确吗? 79
问题67 编写表达式时需要注意
什么? 79
问题68 如何理解c=a,b;? 80
问题69 为无符号类型变量赋值时,数据
类型应怎样转换? 81
问题70 C语言表达式的求值顺序总是
按照运算符的结合性保证
“自左至右”或者“自右
至左”吗? 81
第6章 输入/输出函数 83
问题71 函数printf()的基本格式
是什么? 84
问题72 如何认识printf()函数的格式
字符? 85
问题73 函数printf()的标志有几种?
如何使用? 91
问题74 如何控制输出最小宽度? 91
问题75 如何控制输出精度? 92
问题76 如何控制输出长度? 93
问题77 如何动态设置输出宽度和
精度? 94
问题78 printf()函数的返回值是
什么? 95
问题79 如何理解输出列表? 96
问题80 函数scanf()的基本格式是
什么? 96
问题81 scanf()函数的格式字符是
什么? 97
问题82 使用scanf()函数应注意的问题
是什么? 100
问题83 scanf()函数的返回值是
什么? 101
问题84 如何使用getchar()函数? 102
问题85 getch()函数如何使用? 104
问题86 如何应用gets()函数? 104
问题87 如何应用putch()函数? 105
问题88 puts()函数该如何应用? 106
问题89 如何控制多数值的输入? 107
问题90 如何输入字符数组? 108
第7章 选择、分支结构程序设计 110
问题91 5>4>3为什么不成立——谈谈
关系表达式的值 111
问题92 =和==如何区分? 112
问题93 什么叫逻辑短路? 113
问题94 if语句的基本形式有哪些?
如何应用? 114
问题95 浮点数的相等比较是否可以
用==? 116
问题96 关系运算符和数学不等号有
什么区别? 117
问题97 if语句后面一定不能写
分号吗? 118
问题98 这个程序为什么多执行了好多
语句? 119
问题99 不用关系表达式和逻辑表达式
做条件 120
问题100 怎样理解复合语句中的
变量? 122
问题101 如何进行if语句的嵌套? 123
问题102 条件运算符“? :”怎样
应用? 124
问题103 switch语句的基本格式是
什么? 125
问题104 if语句与switch语句的优缺
点是什么? 127
问题105 switch语句中的default关键字
是否必须? 128
问题106 break关键字在switch语句中
应注意什么? 128
问题107 如何正确判断if和else的
匹配? 130
问题108 switch和case后的表达式值的
类型是否可以是浮点型? 132
问题109 区段划分型条件有什么
技巧? 133
问题110 default必须写在所有case
之后吗? 134
第8章 循环结构 136
问题111 循环结构的基本概念是
什么? 137
问题112 while语句的基本格式是
什么? 138
问题113 while循环应注意什么
问题? 139
问题114 for循环语句的基本格式
是什么? 140
问题115 for语句的三个表达式都是
必须的吗? 142
问题116 do…while语句的基本格式
是什么? 144
问题117 分号在循环体中的作用? 146
问题118 while与do…while的
区别? 148
问题119 什么是循环嵌套? 149
问题120 循环嵌套的结构是
怎样的? 151
问题121 如何正确使用循环嵌套? 153
问题122 死循环是怎样产生的? 154
问题123 怎样提高循环语句的
效率? 156
问题124 continue语句的基本作用
是什么? 158
问题125 break语句的基本作用是
什么? 159
问题126 goto语句的基本格式是什么?
如何使用? 161
问题127 goto语句的缺陷是什么? 163
问题128 如何选择循环语句? 165
问题129 如何判定循环结束和提前
结束? 165
问题130 如何避免循环中的初值错误
问题? 167
第9章 数组 170
问题131 什么是数组?其存储有何
特点? 171
问题132 数组的维数该如何理解? 171
问题133 一维数组是怎样定义的? 172
问题134 如何引用一维数组元素? 173
问题135 如何初始化一维数组? 174
问题136 如何设计数组的排序
算法? 175
问题137 如何定义二维数组? 176
问题138 如何引用二维数组元素? 178
问题139 如何初始化二维数组? 179
问题140 如何定义字符数组? 180
问题141 如何初始化字符数组? 180
问题142 如何引用字符数组? 181
问题143 如何进行字符数组的
复制? 182
问题144 如何进行字符数组的
连接? 183
问题145 如何进行字符串的比较? 185
问题146 如何测定字符串的长度? 187
问题147 如何进行字符串大小写的
相互转换? 188
问题148 如何计算字符串中有多少个
单词? 190
问题149 gets()函数和scanf()函数在输入
字符串时有何区别? 191
问题150 puts()函数和printf()函数在输出
字符串时有何区别? 192
问题151 数组与指针的区别是什么? 193
问题152 为什么作为函数形参的数组和
指针可以互换? 195
问题153 为什么数组名作参数传递给子
函数时,子函数可以改变主
函数中数组的值? 196
问题154 C语言中有动态数组吗? 197
问题155 如何实现动态二维数组? 199
问题156 strcpy()函数可以复制字符串的
一部分吗? 201
问题157 字符串和字符数组有什么
区别? 202
问题158 ‘’和“”有什么区别? 203
问题159 字符数组占用内存
怎样算? 204
问题160 用字符数组和指针两种方式
定义的字符串有什么
不同? 204
第10章 函数编程基础 206
问题161 什么是函数?如何分类? 207
问题162 如何定义无参函数? 209
问题163 如何定义有参函数? 210
问题164 什么是空函数?作用是
什么? 210
问题165 什么是形参和实参?如何
使用? 211
问题166 如何从函数返回? 213
问题167 函数返回值你了解多少? 214
问题168 如何进行函数的一般
调用? 215
问题169 函数调用的基本方式有几种?
各是什么? 216
问题170 函数调用应具备哪些
条件? 216
问题171 如何进行函数的嵌套
调用? 218
问题172 什么是递归调用?如何
实现? 219
问题173 函数如何将数组元素作为
实参? 222
问题174 如何将数组名作为函数
参数? 224
问题175 如何将多维数组名作为函数
参数? 227
问题176 什么是局部变量? 228
问题177 什么是全局变量?如何
应用? 229
问题178 存储方式有哪几种?分别
是什么? 232
问题179 如何使用auto关键字? 233
问题180 什么是静态变量?如何
实现? 236
问题181 什么是寄存器变量?如何
实现? 238
问题182 如何声明外部变量? 239
问题183 如何调用编译后的函数? 240
问题184 如何限定外部变量的使用
范围? 241
问题185 如何使用函数调用实现对字
符串的统计? 242
问题186 main()函数有什么作用? 243
问题187 什么是内部函数? 243
问题188 什么是外部函数?
怎么用? 244
问题189 static()函数与普通函数有什么
区别? 245
问题190 形参和实参有什么区别? 246
第11章 指针解析 248
问题191 什么是指针?什么是指针
变量? 249
问题192 如何创建指针? 250
问题193 如何初始化指针? 251
问题194 如何使用指针? 252
问题195 函数中如何传递指针? 254
问题196 指针、数组和地址之间的关系
是什么? 255
问题197 如何进行指针运算? 256
问题198 如何使用指针操作数组? 258
问题199 如何用指针表示多维
数组? 260
问题200 如何使用指针操作多维
数组? 261
问题201 如何用指针为函数传递
数组? 263
问题202 如何用指针表示字符串? 264
问题203 如何使用字符串指针作为函数
参数? 265
问题204 字符数组和字符指针的区别
是什么? 266
问题205 什么是指针数组? 267
问题206 如何使用指针数组处理
字符串? 268
问题207 如何将指针数组作为函数的
参数? 269
问题208 什么是指向指针的指针? 270
问题209 二级指针如何应用于一维
数组? 271
问题210 如何实现二级指针对二维数组
的操作? 272
问题211 二级指针如何操作字符串数组
(指针数组)? 273
问题212 如何理解返回指针的
函数? 275
问题213 什么是指向函数的指针? 277
问题214 如何用const控制指针? 278
问题215 什么是“野指针”? 279
问题216 main()函数的指针数组形参
是怎么回事? 279
问题217 void指针就是空指针吗?它
有什么作用? 281
问题218 指针是一种特殊的变量,只能
用来保存地址。这句话
对吗? 282
问题219 字符指针、浮点数指针以及
函数指针这三种类型的变量
哪个占用的内存最大?
为什么? 282
问题220 一个32位的机器,该机器的
指针是多少位? 283
第12章 常用数据结构 284
问题221 空结构体所占的内存是
多少? 285
问题222 在C语言中,一个结构体可以
包含指向自己的指针吗? 286
问题223 struct person{...};person a;
为什么编译出错? 287
问题224 怎样从/向数据文件读/写
结构? 289
问题225 枚举与#define宏的区别有
哪些? 290
问题226 如何看待枚举类型,枚举类型
的优点是什么? 291
问题227 关键字typedef的功能是
什么? 292
问题228 类型定义是否允许嵌套? 294
问题229 typedef与#define宏的相似之处
与不同之处是什么? 295
问题230 什么是散列法? 296
问题231 大小端模式对union类型数据
有什么影响? 297
问题232 如何为联合体变量赋
初值? 298
问题233 如何证明联合体变量的所有成员是共享一个内存单元的? 300
问题234 堆和栈的区别是什么? 301
问题235 举例说明,什么是静态链表?
什么是动态链表? 302
问题236 单向链表、双向链表和循环链
表有什么区别? 304
问题237 如何在链表中的指定位置插入
结点? 305
问题238 如何删除链表中指定位置的
结点? 306
问题239 如何创建一个动态链表? 308
问题240 指向结构体数组的指针如何
应用? 310
第13章 位运算操作符 312
问题241 什么是位运算?位运算符包括
哪些? 313
问题242 移位运算中如何补位? 314
问题243 移位运算符与加减运算符的
优先级哪个较高? 315
问题244 什么是循环移位? 316
问题245 什么是位段?其优点是
什么? 317
问题246 如何正确使用位段? 318
问题247 数据在计算机中的存储单位有
哪些?有几种存储形式? 320
第14章 存储管理 322
问题248 与内存息息相关的重要概念
有哪些? 323
问题249 指针指向不合法引起了哪些
内存问题? 324
问题250 内存分配与释放引起的常见
问题有哪些? 325
问题251 什么是内存越界?什么是内存
泄露?二者是如何产生的? 326
问题252 C语言提供了哪些动态内存
分配函数? 327
问题253 malloc()函数与calloc()函数有
什么区别? 328
问题254 内存耗尽怎么办? 328
问题255 动态内存会被自动释
放吗? 330
问题256 高位优先与低位优先的不同
之处是什么? 330
问题257 free()和delete()怎样处理
指针? 331
问题258 怎样利用好敏感的内存
资源? 333
第15章 预处理和函数类型 335
问题259 在头文件中#if、_STDC_等字符
起什么作用? 336
问题260 如何书写多条语句宏? 337
问题261 预处理中#和##运算符是什么
意思? 338
问题262 一个头文件可以包含另一个头
文件吗? 339
问题263 #include<>和#include“”有什么
区别? 340
问题264 什么是无参宏定义? 341
问题265 什么是带参宏定义? 342
问题266 怎样写参数个数可变
的宏? 343
问题267 #pragma预处理的作用
是什么? 345
问题268 条件编译的表达形式有
哪些? 346
问题269 如何应用内部函数? 347
问题270 如何应用外部函数? 348
第16章 文件的读写操作 351
问题271 各个读写操作的区别是
什么? 352
问题272 C语言文件有哪几类? 354
问题273 怎样写数据文件,使之可以在
不同字大小、字节顺序或浮点
格式的机器上读入? 355
问题274 能否使用fflush()函数清除多余
的输入? 356
问题275 fopen()函数打开文件失败的
原因是什么? 357
问题276 为什么打开文件后要及时
关闭? 358
问题277 文件的打开方式有哪些? 358
问题278 如何正确使用putchar()函数和getchar()函数? 360
问题279 getchar()函数、getch()函数和getche()函数的区别是
什么? 361
问题280 使用printf()函数和scanf()函数
需要注意什么? 362
问题281 printf()函数有哪些参数? 363
问题282 scanf()函数的格式控制包括
哪些? 364
问题283 printf()函数和scanf()函数格式
符的修饰符“*”有什么
作用? 366
问题284 fscanf()函数、fprintf()函数与scanf()函数和printf()函数有什么
不同? 367
问题285 如何判断文件的结束? 368
第17章 图形图像处理 371
问题286 为什么在使用图形函数时要
首先初始化图形模式? 372
问题287 怎样初始化图形模式? 372
问题288 初始化时提示“BGI Error: Graphics not initialized
(use 'initgraph')”怎么办? 374
问题289 怎样利用C语言建立独立的
图形运行程序? 375
问题290 TC中有几个画线函数?怎么
使用? 376
问题291 TC中有几个画矩形函数?怎么
使用? 377
问题292 TC中有几个画圆函数?怎么
使用? 379
问题293 如何使用C语言填充封闭
图形? 380
问题294 TC中有几个和光标有关的
函数?怎样使用? 382
问题295 如何在图形模式下输出
文本? 383
问题296 背景色、线条颜色和填充颜色
有什么区别?何时使用? 386
问题297 怎样记住那么多的颜色? 387
问题298 线条样式和填充样式都有
哪些?怎样设置? 388
问题299 怎样复制图形? 392
问题300 怎样在C语言中制作
动画? 394

8. c语言语法问题!高手请进

1.
#define是替换的意思,所以函数形参也被替换了,所以语法不对
改好了:

#include <stdio.h>
#define pi 3.1415926
#define r 2.0
double calcuarea(double ) ;
double calcucirum(double ) ;
int main(void)
{
printf("圆的面积是:%f\n", calcuarea(r));
printf("圆的周长是:%f\n", calcucirum(r));
return 0; }
double calcuarea(double R)
{
return(pi*R*R);
}
double calcucirum(double R)
{
return(pi*R*2.0);
}

2.
扬和?的输出是汉字编码,你想要的应该是ascii码
'2'的ascii是50,'a'的ascii是97,他们的和达到了147,不属于ascii的范畴了,当超过127的字符以字符格式输出会按汉字编码方式两个字节结合成一个汉字
字符串以\0结尾,第一次的扬由147,0这两个字节结合
第二次由于在\0前面多了个\n,147不能和另一字符结合,单字节非ascii输出?

3.
#include <stdio.h>

int main(void)
{
int i,j;
float x,y;
char c;

scanf("%2d%f%f%c%d",&i,&x,&y,&c,&j);
return 0;
}

为什么结果是无法运行?
可以运行

4.
此时结果是非常长的一串数,非意愿,但是将“%f”换成“%lf”时结果就变成了意愿!

浮点数的内存格式是 符号为+阶码+尾数(左端为高字节)
而double为8字节,float为4字节
当以%lf格式操作的时候没有问题
当以%f格式操作的时候,由于输入的浮点数按float的格式保存在了低4字节,高4字节没有修改,vc的默认值为0xcc,所以double a的实际内存格式为0xcccccccc+符号位+阶码+尾数,这种格式显然是不对的,由于最终阶码非0,所以输出一个极大的浮点数

5.
#include <stdio.h>
int main(void)
{
printf("%-8s%8s%8s\n","cocks","hens","chicks");
int x=0,y=0,z=0;
while (x<20)
x++;
while (y<=33)
y++;
z=300-15*x-9*y;
if (100-x-y==z)
printf("%-8d%8d%8d\n",x,y,z);
return 0;
}
我编译运行没有问题
x=20,y=34,z=-306
最后一次不会输出xyz

6.
为什么把 double popu=13;
分解成 doubble popu;
popu=13;运行出现错误?

你写错了doubble多写了个b

9. 跪求!!关于C语言的编程问题!急~

/*
题目:《设计实现一个班级信息管理系统》
要求:
合理运用C语言的数组,指针,结构体以及文件操作等,实现一个模拟的班级通讯录管理系统。
该系统用来管理学生的基本信息,通信信息。具体的要如下:
1) 工作人员可以通过此程序来管理学生的信息,包括查询,添加,修改,删除等功能。
2) 在进行添加时,系统会自动监测所添加的学生信息是否已经存在,如果存在,会提示用户,
该学生已经存在。
3) 在删除时,要首先弹出对话框,让用户确认是否删除。只有经过确认才能够被删除。
4) 在进行学生信息管理时,不准用户修改学号。
5) 通过键盘或读取文件的方法读取学生的信息。
6) 能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如 do while,for,if-else,if等)。
7) 程序要有主菜单,能够完成主要的功能。
[附1]
有关学生的信息,包括,学号,姓名,性别,年龄,电话。
[附2]
我是大一的新生,现在C的内容还没有完全学完,关于枚举,链表,文件操作等还未学,所以请各位高手在帮小弟时多加一点提示,不然我可能看不懂```
还有,关于第(4)个要求和第(7)个要求,可以忽略```
*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>

typedef struct Student//学生信息
{
signed short id;
char name[11];
char sex[7];
signed short age;
char telNum[16];
}Student;

typedef struct Node
{
Student data;
Node* next;
}Node;

static Node* begin=NULL;//哨兵结点
static signed short len=0;//链表长度

void printMenu();//打印菜单
void printBye();//打印结束语
void printList();//打印所有学生信息
void printStudent(Student st);//打印学生信息
Node* lookupNode(signed short stid);//根据学号查询学生信息。
int addNode(Student st);//添加学生信息。成功返回链表长度。内存分配失败-1;信息重复0
int deleteNode(signed short stid); //根据学号删除学生信息。成功返回链表长度;未找到-1
int updateNode(Student st);//根据学号修改学生信息。成功返回链表长度;未找到0

void main()
{
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
begin->next=NULL;
printf("----------------------------------------------------------------------------\n");
printf("--- 班级信息管理系统 ---\n");
printf("--- 沙支夸依 2007-12-21 ---\n");
printf("----------------------------------------------------------------------------\n");
printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");
printMenu();
while (1)
{
char ch;
ch=getchar();
fflush(stdin);
Student student;
memset(&student,0,sizeof(Student));
switch (ch)
{
case '1':
printf("---添加学生信息。(学号为 0 结束)\n");
while (1)
{
printf("请输入新学号: ");
scanf("%d", &student.id);
if (!student.id)
break;
printf("请输入学生姓名: ");
fflush(stdin);
gets(student.name);
printf("请输入学生姓别: ");
scanf("%s", student.sex);
printf("请输入学生年龄: ");
scanf("%d", &student.age);
printf("请输入学生电话: ");
scanf("%s", student.telNum);
int succ=addNode(student);
if (succ)
{
if (-1==succ)
printf("内存错误!请重新输入!\n");
}
else
printf("对不起!该学号已被占用!\n");
printf("\n");
}
break;
case '2':
printf("---删除学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要删除学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* delNode=lookupNode(stid);
if (!delNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(delNode->data);
printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n");
fflush(stdin);
char cDelete=getchar();
if ('n'==cDelete)
continue;
printf("删除成功!剩余记录数: %d\n",deleteNode(stid));
}
printf("\n");
}
break;
case '3':
printf("---修改学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* updataNode=lookupNode(stid);
if (!updataNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(updataNode->data);
Student student;
student.id=stid;
printf("修改学生姓名: ");
fflush(stdin);
gets(student.name);
printf("修改学生姓别: ");
scanf("%s", student.sex);
printf("修改学生年龄: ");
scanf("%d", &student.age);
printf("修改学生电话: ");
scanf("%s", student.telNum);
updateNode(student);
printf("修改成功!\n");
printStudent(updataNode->data);
}
printf("\n");
}
break;
case '4':
printf("---查询学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* findNode=lookupNode(stid);
if (!findNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(findNode->data);
}
printf("\n");
}
break;
case '5':
printList();
printMenu();
break;
case '6':
printBye();
return;
default:
printMenu();
}
}
}

void printMenu()
{
printf("----------------------------------------------------------------------------\n");
printf("--- 1、增加学生信息。 2、删除学生信息。 ---\n");
printf("--- 3、修改学生信息。 4、查询学生信息。 ---\n");
printf("--- 5、打印所有信息。 6、退出。 ---\n");
printf("----------------------------------------------------------------------------\n");
}

void printBye()
{
printf("----------------------------------------------------------------------------\n");
printf(" 感谢您使用班级信息管理系统 \n");
printf(" 再 见 \n");
printf("----------------------------------------------------------------------------\n");
}

void printList()
{
Node* temp=begin->next;
if (!temp)
{
printf("暂时无记录可供操作!\n");
}
while (temp)
{
printStudent(temp->data);
temp=temp->next;
}
}

void printStudent(Student st)
{
printf("学号:%-6d 姓名:%-10s 性别:%-6s 年龄:%-3d 电话:%-15s\n",
st.id, st.name, st.sex, st.age, st.telNum);
printf("--------------------------------------------------------------------------\n");
}

Node* lookupNode(signed short stid)
{
Node* temp=begin->next;
while (temp)
{
if (temp->data.id==stid)
return temp;
temp=temp->next;
}
return NULL;
}

int addNode(Student st)
{
if (lookupNode(st.id))
return 0;
Node* temp=(Node*)malloc(sizeof(Node));
if (!temp)
return -1;
temp->data=st;
temp->next=begin->next;
begin->next=temp;
return ++len;
}

int deleteNode(signed short stid)
{
Node* temp=begin;
Node* pos=NULL;
while (temp->next)
{
if (temp->next->data.id==stid)
{
pos=temp->next;
temp->next=pos->next;
free(pos);
return --len;
}
temp=temp->next;
}
return -1;
}

int updateNode(Student st)
{
Node* temp=lookupNode(st.id);
if (!temp)
return 0;
temp->data=st;
return len;
}

10. c语言编程题,急急急!

n(<=240) 这个很大。。

我来说吧,不要看着是数字,,其实就是一堆字符
所以你可以
定义
char ss[300];
gets(ss); 在处理。。就行了。。。

整个程序都是字符来处理就行

http://..com/link?url=-SRwDyWeKJeO9UlxAaa-6tRkK8v46uER3NxVih-ARuScZ8i-1NphXiq
这里有一道相同的题目不过是求最小值