C语言 简答

C语言 简答
C语言 简答

一、简答题

1、C语言中进行函数声明的作用是什么?

答:函数声明的作用是:把函数的名字、函数类型及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照和检查(例如,函数名是否正确,实参的类型和个数是否一致)。

2、举例说明在C语言中如何定义符号常量,使用符号常量的优点?

答:使用符号常量:

在程序运行过程中,其值不能被改变的量称为常量。常量分类:整型﹑实型﹑字符﹑字符串常量。符号常量:在C语言中允许程序中的常量定义为一个标识符,这个标识符称为符号常量。

带有名字的常量定义格式:

#define <符号常量> <常量>

例如:#define AGE 35

#define M 1.9734067e9

优点:

1)简化书写格式、减少出错率。

2)定义符号常量可以提高程序的可读性,

便于程序的调试和修改。

3)符号常量不同于变量,在其作用域内

不能被改变和重新赋值。

4)习惯上人们把符号常量名用大写字母

表示,变量用小写,以示区别。

3、C语言中,变量为何要先定义后使用?

答:程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:?数据类型?存储类型?作用域

数据类型决定数据所占内存字节数,数值取值范围,在其上可进行的操作。

对变量先定义后使用的目的是:

1)凡是未被事先定义的不做为变量名,这就能保证程序中变量名使用得正确,便于编译时发现错误,避免变量名使用时出错。

2)每个变量被指定一确定类型,在编译时就能为其分配相应的存储单元。

3)指定每一个变量属于一个类型,便于在编译时据此检查该变量所进行的运算是否合法。

4、字符串是以'\0'结束的,存储一个字符串需要多少个字节?

答:如“ABC”实际需要3+1个字节来存储这个字符串常量。5、C语言中,动态存储区主要存放哪些数据?

答:动态存储区中存放以下数据:

1)函数的形参

2)函数调用时的现场保护和地址等。

3)Auto register型局部变量

对以上数据,当进行函数调用时分配动态存储空间,当函数调用结束时,释放这些存储单元。在程序的执行过程中,这种分配和释放是动态的。

6、使用全局变量的优点和复作用是什么?

答:优点:是增加了函数间数据联系的渠道。

由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数,相当于各个函数间有直接的传递通道。由于函数的调用只能带回一个返回值,因此有时可以利用全局变量增加与函数联系的渠道,从函数得到一个以上的返回值。

1.)所有函数之前定义的全局变量可被本文件中所

有函数共用。

2.)全局变量的有效范围是它定义的位置到本源文

件结束。

3.)全局变量增加了函数之间的联系通道。

4.)全局变量与局部变量重名时,在函数内部将屏

蔽全局变量。

5.)全局变量在程序执行的全过程都占用存储单

元。

复作用:1)、过多的全局变量时函数之间的“耦合性”增加,不利于程序的移植。

2)、过多的全局变量使程序的可读性变差。

3)、外部变量可加强函数模块之间的数据联系,但又使这些函数依赖这些外部变量,因而使得这些函数的独立性降低。

4)、从模块化程序设计的观点来看这是不利的,因此不是非用不可时,建意不要使用外部变量。

建议不在必要时不要使用全局变量,因为:

①全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。

②它使函数的通用性降低了,因为函数在执行时要依赖于其所在的外部变量。

若将一个函数移到另一个文件中,还要将有关的外部变量及其值一起移过去。但若该外部变量与其他文件

的变量同名时,就会出现问题,降低了程序的可靠性和通用性。

③使用全局变量过多,会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外部变量的值。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使用全局变量。

7、二维数组的定义和初始化的正确形式有哪些?答:二维数组的初始化:

1)分行初始化。如:static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

2)按数组排列的顺序将所有数据写在一个花括号内,如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 3)部分元素初始化。如:static int a[3][4]={{,1},{0,6},{0,0,11}};

⒋如果对全部元素都赋初值,则定义数组时可以不指定第一维的长度,

如:

static int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

8、wile do while两循环结构的相同点和不同点是什么?

答:

1)while语句的一般形式为: while(表达式)语句;其中表达式是循环条件,语句为循环体。

while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。

2)do-while语句的一般形式为:

do

{循环体}

while(表达式);

do-while语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体。而while 是先判断后执行,如果条件不满足,则一次循环体语句也不执行。

while语句和do-while语句一般都可以相互转换。

计算机C语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

计算机c语言二级考试复习资料

第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式

c语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

C语言考试重点(考前必看,吃透必过)

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。

C语言源代码

剪刀石头布源代码 #include #include main() { int d,x; { printf("请输入:1是剪刀,2是石头,3是布"); scanf("%d",&d); x=rand()%3; if(d==x) printf("双方平局"); else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf("你赢了"); else printf("电脑赢了"); } }

简单计算器 #include main() { int a,b,d=0; char c; while(d==0) { printf("请开始计算,请输入需要运算的数字和运算法则,数字符号数字:"); scanf("%d%c%d",&a,&c,&b); switch(c) { case'+': printf("%d+%d=%d\n",a,b,a+b); break; case'-': printf("%d-%d=%d\n",a,b,a-b); break; case'*': printf("%d*%d=%d\n",a,b,a*b); break; case'/': if(0==b) printf("除法被除数不能为零!\n") ; else printf("%d/%d=%d\n",a,b,a/b); break; } } }

加油站加油问题 #include int main() { double a = 3.25, b = 3.00, c= 2.75; double d = 0.05, e = 0.10, m; int x,y,z; printf("请输入您要的加油量:"); scanf("%d",&x); printf("请输入您要的汽油种类,1-a型汽油售价3.25元/千克,2-b型汽油售价3.00元/千克,3-c型汽油售价2.75元/千克:"); scanf("%d",&y); printf("请输入您要的服务类型,1-自己加服务优惠0.05,2-协助加服务优惠0.10:"); scanf("%d",&z); switch(y) { case 1: y = a;break; case 2: y = b;break; case 3: y = c;break; } if(z == 1) m = (1 - d) * y * x; else if(z == 2) m = (1 - e) * y * x; printf("您需要支付:%f 元,谢谢惠顾,欢迎下次再来",m); return 0; }

C语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

最新C语言考试复习题

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为。 A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float,del_word,signed C.void,max,hiy,,list,*jer D.a,temp,_isw,INT,keep,wind 8.字符串“\”E OF= -\61\””的长度是。 A.8 B.9 C.12 D.非法字符串9.数学式x sin在C程序中对应的不正确的表达式为。 A.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx)) C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x))) 10.下列是C语言的有效标识符? A._No1 B.No.1 C.12345 D.int 11.C语言中,表示一条语句结束的标号是 A.# B.; C.// D.} 12.每个C程序中都必须有且仅有一个 A.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是。 A.字符型B.整型C.实型D.数组 14.下列字符列中,可作为C语言程序自定义标识符是。 A.switch B.file C.break D.do 15.运算符+、<=、=、% 中,优先级最低的运算符是。 A.+ B.<= C.= D.% 16.下列字符列中,可以作为“字符串常量”的是。 A.ABC B.″xyz″ C.′uvw′ D.′a′ 17.设变量m,n,a,b,c,d均为0,执行(m = a= =b)||(n=c= =d)后,m,n的值是。 A.0,0 B.0,1 C.1,0 D.1,1 18.字符串"vm\x43\\\np\102q"的长度是。 A.8 B.10 C.17 D.16

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

C语言复习

2. 下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 3. 若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 4. 有字符串如下,"\n\\as1xabc",则字符串的长度为 A)8 B)9 C)10 D)11 5. C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= 6. 若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 7. 若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 8. 若有定义:int a=7; float x=2.5,y=4.7; , 则表达式x+a%3*(int)(x+y)%2/4的值是 A)2.500000 B)2.750000 C)3.500000 D)0.000000 9. 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为 A)2 B)3 C)4 D)5 10. 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为 A)int B)float C)double D)不确定 11. 设有int x=11;则表达式(x++*1/3)的值是 A)3 B)4 C)11 D)12 12. 以下程序的输出结果是 void main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } A)30 B)31 C)32 D)33 13. 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为 A)36 B)0 C)-24 D)-60 14. 在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用个字节

c语言程序代码

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include int main() { printf(“this is a c program.\n”); return 0; } 2.求两个整数之和。 程序: #include int main() { int a,b,sum; a=122; b=234;

sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。 程序: #include int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z);

} 4.有人用温度计测量出华氏发表示的温度(如69°F),今要 求把她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。 程序: #include int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; } 5.计算存款利息。有1000元,想存一年。有一下三种方法可 选:(1)活期:年利率为r1;(2)一年定期:年利率为r2; (3)存两次半年定期:年利率为r3。分别计算一年后按三种方法所得到的本息和。 程序: #include

C语言编程练习题绝对经典!

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人 解方程组 编写程序,采用穷举法求出结果。 编写程序,根据以下公式求e 的值。要求用两种方法计算: 1) for 循环,计算前50项 2)while 循环,直至最后一项的值小于10-4 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上 只剩下最后一个桃。问第一天摘了几个桃。 编程打印九九乘法表 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。 2) 使用数组来进行编程。 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 = 40 余数为7 40/8 = 5 余数为0 于是八进制数为507(第一位5是最后的商)) 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13) 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为 奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。 11111111!2!3!4!5!!e n ≈++++++??????+

C语言考试总结复习要点总结.doc

C语言考试复习要点 1.程序结构是三种:顺序结构, 循环结构 (三个循环结构 ), 选择结构 (if 2.读程序都要从main() 入口 , 然后从最上面顺序往下读(碰到循环做循环 3.计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是是位是指为0或者1。byte是指字节,一个字节=八个位. 5.一定要记住二进制如何划成十进制。和 switch) ,碰到选择做选择 他的地址 . )。 概念常考到的: 编译预处理不是 C 语言的一部分,不占运行时间,不要加分号。 C 语言编译的程序称为源程序,它以ASCII 数值存放在文本文件中。 每个 C 语言程序中main 函数是有且只有一个。 在函数中不可以再定义函数。 算法的是一定要有输出的,他可以没有输入。 break 可用于循环结构和switch 语句。 逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。 main define scanf printf 都不是关键字。迷惑你的地方 If 是可以做为用户标识符。因为 If 中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 就是合法的,且数据是×10-1 。 考试口诀: e 前 e 后必有数, e 后必为整数 3)字符数据的合法形式:: '1' 是字符占一个字节,"1" 是字符串占两个字节(含有一个结束符号 )。 '0' 的 ASCII 数值表示为48, 'a' 的 ASCII 数值是 97, 'A' 的 ASCII 数值是 65。 一般考试表示单个字符错误的形式:'65'"1" 字符是可以进行算术运算的,记住:'0'-0=48 大写字母和小写字母转换的方法:'A'+32='a' 相互之间一般是相差32。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节: 考试时候一般会说,在 16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节就可以了。5)转义字符的考查: 在程序中 int a = 0x6d ,是把一个十六进制的数给变量 a 注意这里的0x 必须存在。 在程序中 int a = 06d, 是一个八进制的形式。 在转义字符中,’ x6d’才是合法的,0 不能写,并且x 是小写。 141’是合法的,0 是不能写的。 ‘108’是非法的,因为不可以出现8 。 6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。 7)强制类型转换: 一定是(int)a不是int (a),注意类型上一定有括号的。 注意( int )( a+b )和( int ) a+b的区别。前是把a+b转型,后是把 a 转型再加b。8)表达式的考查:

c语言课程设计源代码

c语言课程设计源代码标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

学校运动会管理系统问题描述: (1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数; (2) 各项目名次取法有如下几种: 取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1; (3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 (4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 程序代码: #include<> #include<> #define N 3 #define M 3 #define W 3 char* n_number[3]={"1","院系2","院系3"}; char* m_number[3]={"1","男项2","男项3"};

char* w_number[3]={"女项1","女项2","女项3"}; int size=2; struct student { char num[10]; char name[20]; char xiangmu[20]; int score; char ximing[20]; }stu[100],temp; void input() um,&stu[i].name,&stu[i].xiangmu,&stu[i].score,&stu[i].ximing); iming,n_number[0])==0) iming); iming,n_number[h])==0) for(int s=0;s

趣味c语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (4) 考点2 结构化程序设计 (5) 考点3 面向对象的程序设计 (5) 第3 章 . 软件工程基础 5 考点1 软件工程基本概念 (5) 考点2 软件分析方法6 考点3 结构化设计方法 (7) 考点4 软件测试 (8) 考点5 程序的调试 (9) 第4 章数据库设计基础

(9) 考点1 数据库系统的基本概念 (9) 考点2 数据库系统的基本概念 (10) 考点3 关系代数 (12) 考点4 数据库设计与管理 (12) 第二部分二级 C 语言 第1 章程序设计基本概念 (14) 考点1 程序设计 (14) 考点2 C 程序的结构和格式 (14) 考点3 常量和变量.14 考点4 算术表达式.15 考点5 赋值表达式 .16 考点6 自加、自减和逗号运算 (16) 第2 章顺序结构 (17) 考点1 字符型常量与变量 (17) 考点2 putchar 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

PL0源代码(C语言版)

/*PL/0 编译系统C版本头文件pl0.h*/ # define norw 13 //a number of reserved word /*关键字个数*/ # define txmax 100 //length of identifier table /*名字表容量*/ # define nmax 14 //max number of digits in numbers /*number的最大位数*/ # define al 10 //length of identifier /*符号的最大长度*/ # define amax 2047 //maximum address /*地址上界*/ # define levmax 3 //max depth of block nesting /*最大允许过程嵌套声明层数[0,lexmax]*/ # define cxmax 200 //size of code array /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, //slash斜线 lss, leq, gtr, geq, lparen, //leq :less than or equal to; gtr: great than;lparen:left parenthesis rparen, comma, semicolon,period, becomes,//comma逗号semicolon分号period句号becomes赋值号 beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32 /*-------------*/ enum object{ //object为三种标识符的类型 constant, variable, procedur, }; /*--------------*/ enum fct{ //fct类型分别标识类PCODE的各条指令 lit, opr, lod, sto, cal, inte, jmp, jpc, //书本P23 }; #define fctnum 8 /*--------------*/ struct instruction //指令 { enum fct f; //功能码 int l; //层次差 int a; //P23 };

复试C语言常考趣味程序设计

狼追兔子 1 巧夺偶数 2 五猴分桃 3 高次方数 4 借书方案 5 过桥问题 6 数制转换7 打渔晒网8 喝酒问题9 哥德巴赫猜想10 打印日历11 抓交通肇事逃逸犯12 反序数13 新郎新娘14 称重砝码15 求车速16 谁是窃贼17 出售金鱼18 百钱百鸡19 谜语博士20 猜牌术(-)21 舍罕王的失算22 怎样存钱利最大23 猜牌术(二)24 爱因斯坦的数学题25 取火柴游戏26 平分鱼和筐27 可逆素数28 三色球问题29 抢n游戏30 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。 样例输入 10 8 15

样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++; } else printf("%d",i); } printf("\n"); } return 0; } 问题B: 趣味程序设计_巧夺偶数 时间限制: 1 Sec 内存限制: 128 MB

C语言期末考试全部知识点复习

C语言知识点复习资料 考试就是难得得训练自己得机会,在特定得时间、特定得地点、特定得气氛下,您需要调动各方面得能力。而在每一次考试中,我都下意识地应用自己摸索出来得“目标控制法”,做到了每次考试有有收获与进步。每次考试前,我都会在一张白纸上写满通过本次考试要达到得目标:要注意克服哪些易犯得错误,尤其就是要克服前几次考试中暴露出来得共性得失误;要积累哪些经验,应用哪些技巧,比如选择题中得特征值法;要在多长得时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中得选择题与填空题;要培养锻炼哪些考试应试得心理素质等。 也就就是说,我们要把考试瞧成就是一个完整得流程,包括考前准备、考场发挥与考后调整三个阶段。同学中存在得误区往往就是只注意考前得准备与考场得发挥两个阶段,对考后调整注意不够。事实上,高考之前得每一次模拟考试,最重要得就就是考试后得总结与反思,只有这样,才能认识到自己得薄弱环节,不断提高考试能力。所以,有心得同学一定要注意做好健全得考后调整,不断提高自己得实力。 总体上必须清楚得: 1.程序中基本得控制结构就是三种: 顺序结构、选择结构(分支结构)、循环结构。 2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3.计算机得数据在电脑中保存就是以二进制得形式、数据存放得位置就就是它得地址、 4.bit就是位就是指为0 或者1。 byte 就是指字节, 一个字节 = 八个位、5、编译预处理不就是C语言得一部分,不占运行时间,不要加分号。(常考!) #define PI 3、1415926; 这个写法就是错误得,一定不能出现分号。 6、每个C语言程序中main函数就是有且只有一个。 7、用C语言编写得程序称为源程序,扩展名就是、c。C程序必须经过编辑、 编译、链接、运行四个步骤才可得到运行结果。注意、c与、obj文件时无法运行得,只有、exe文件才可以运行。(常考!) 8、 C语言书写格式就是自由得,每行可以写多个语句,一条语句也可以写在多行。 9、一个C语言程序有且只有一个main函数,就是程序运行得起点。

PL0-C语言源代码

//A.2 C 版本 /*编译和运行环境: *1Visual C++6.0,VisualC++.NET and Visual C++.NET 2003 *WinNT, Win 200, WinXP and Win2003 *2 gcc version 3.3.2 20031022(Red Hat Linux 3.3.2-1) *Redhat Fedora core 1 *Intel 32 platform *使用方法: *运行后输入PL/0 源程序文件名 *回答是否输出虚拟机代码 *回答是否输出名字表 *fa.tmp 输出虚拟机代码 *fa1.tmp 输出源文件及其各行对应的首地址 *fa2.tmp 输出结果 *fas.tmp 输出名字表 */ #include /*PL/0 编译系统C版本头文件pl0.h*/ #include"string.h" /*解释执行时使用的栈*/ #define stacksize 500 //typedef enum { // false, // true //}bool; # define norw 13 /*关键字个数*/ # define txmax 100 /*名字表容量*/ # define nmax 14 /*number的最大位数*/ # define al 10 /*符号的最大长度*/ # define amax 2047 /*地址上界*/ # define levmax 3 /*最大允许过程嵌套声明层数[0,lexmax]*/ # define cxmax 200 /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32

相关文档
最新文档