C语言必考100题解析汇报
100个经典c语言例题(带答案)
100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典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.程序分析:请利用数轴来分界,定位。
c语言面试题目100及最佳答案精选全文
精选全文完整版(可编辑修改)c语言面试题目及最佳答案1、描述⼀下gcc的编译过程?gcc编译过程分为4个阶段:预处理、编译、汇编、链接。
预处理:头⼀件包含、宏替换、条件编译、删除注释编译:主要进⼀词法、语法、语义分析等,检查⼀误后将预处理好的⼀件编译成汇编⼀件。
汇编:将汇编⼀件转换成⼀进制⼀标⼀件链接:将项⼀中的各个⼀进制⼀件+所需的库+启动代码链接成可执⼀⼀件2、内存的最⼀存储单位以及内存的最⼀计量单位分别是?内存的最⼀存储单位为⼀进制位,内存的最⼀计量单位字节3、#include<> 与#include ""的区别?include<>到系统指定⼀录寻找头⼀件,#include ""先到项⼀所在⼀录寻找头⼀件,如果没有找再到系统指定的⼀录下寻找4、描述⼀下变量的命名规则变量名有字⼀、数值、下划线组成,但不能以数值开头5、变量的声明与定义有啥区别?声明变量不需要建⼀存储空间,变量的定义需要建⼀存储空间6、谈谈c语⼀中有符号和⼀符号的区别?有符号:数据的最⼀位为符号位,0表示正数,1表示负数⼀符号:数据的最⼀位不是符号位,⼀是数据的⼀部分7、谈谈计算机中补码的意义统⼀了零的编码将符号位与其他位统⼀处理将减法运算转换成加法运算8、谈谈数组的特点同⼀个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的9、数组的分类数组的分类主要是:静态数组、动态数组两类。
静态数组:类似int arr[5];在程序运⼀就确定了数组的⼀⼀,运⼀过程不能更改数组的⼀⼀。
动态数组:主要是在堆区申请的空间,数组的⼀⼀是在程序运⼀过程中确定,可以更改数组的⼀⼀。
10、描述⼀下⼀维数组的不初始化、部分初始化、完全初始化的不同点不初始化:如果是局部数组数组元素的内容随机如果是全局数组,数组的元素内容为0 部分初始化:未被初始化的部分⼀动补0完全初始化:如果⼀个数组全部初始化可以省略元素的个数数组的⼀⼀由初始化的个数确定11、谈谈数组名作为类型、作为地址、对数组名取地址的区别?数组名作为类型:代表的是整个数组的⼀⼀数组名作为地址:代表的是数组⼀元素的地址对数组名取地址:代表的是数组的⼀地址12、谈谈你对⼀维数组在物理上以及逻辑上的数组维度理解⼀维数组在逻辑上是⼀维的,在物理上是⼀维的13、描述⼀下函数的定义与函数的声明的区别函数定义:是指对函数功能的确⼀,包括指定函数名、函数类型、形参及其类型、函数体等,它是⼀个完整的、独⼀的函数单位。
c语言面试题目100及最佳答案
c语言面试题目100及最佳答案1. 介绍C语言的基本数据类型和其范围。
C语言的基本数据类型有char、int、float和double。
它们的范围分别如下:- char: -128到127- int: -32768到32767- float: 3.4e-38到3.4e+38- double: 1.7e-308到1.7e+3082. 什么是指针(Pointer)?请解释指针的作用。
指针是一个变量,其值为另一个变量的地址。
它的作用是用于在程序中动态地分配内存、传递函数参数和实现复杂数据结构,如链表和树。
3. 请解释C语言中的自动变量和静态变量的区别。
自动变量是在函数内部声明的变量,在函数结束时会被销毁。
而静态变量是在函数内或函数外声明的变量,它的值在函数调用之间保持不变。
4. 解释什么是递归函数?递归函数是一个可以调用自身的函数。
在递归函数中,函数会反复调用自己,直到满足终止条件为止。
5. 请解释C语言中的位运算符。
C语言中的位运算符包括与(&)、或(|)、异或(^)、取反(~)、左移(<<)和右移(>>)运算符。
这些运算符用于对二进制数的位进行操作,常用于位掩码和位操作等场景。
6. 什么是结构体?结构体是一种用户自定义的数据类型,它可以包含不同类型的数据成员。
通过结构体,我们可以将多个不同的变量组合在一起,形成一个逻辑上的整体。
7. 解释C语言中的动态内存分配。
动态内存分配是指在程序运行时根据需要动态地分配内存空间。
C 语言中的动态内存分配函数包括malloc、calloc和realloc,通过这些函数可以在程序运行时根据需求分配或释放内存。
8. 请解释C语言中的头文件和库文件的作用。
头文件包含一组函数声明、宏定义和结构体声明等信息,用于在源文件中引用。
库文件则包含已编译的函数实现和数据,通过链接库文件可以在程序中使用这些函数和数据。
9. 什么是指针数组和数组指针?指针数组是一个数组,每个元素都是指针类型。
C语言概念题100(解答)
C语言概念题解答选编为了切实掌握C语言的基本概念,特列出有关内容的选择题和填充题等供读者参考。
读者在自学本材料时,希望读者先自已给出解答,然后再来阅读习题的参考解答。
单项选择题1.以下字符列中,能作为C程序自定义标识符的是① num(10) ② file_bak ③ break D class + 2【解】C语言规定,C程序的标识符的命名规则是要由英文字母或下线字符开头,由英文字母、下线字符和数字符构成的字符序列,并且不可以与C语言规定的保留字相同。
在供选择的答案中,选择①含有括号字符,不是标识符,它好象是函数调用表达式;选择②符合C语言关于标识符的构成规则,所以它可以作为标识符;选择③是C语言的保留字,它不可以再被程序设定为标识符;选择④是一个加法运算算术表达式,也不可以作为程序的标识符。
所以解答是②。
2.下列字符列中,不是C语言提供的合法关键字是① switch ② begin ③ case ④ default【解】因C语言的关键字表中没有begin,它不是C语言的关键字。
所以解答是②。
3.键盘符号是指如其标记所示能显示的字符。
下列字符中属于键盘符号的是① \ ② \n ③ \t ④ \b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如‘\n’、‘\t’、‘\b’都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符‘\’才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符\ 已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成’\\’。
4.下列字符列中,不是用来表达转义字符是① \\ ② \’③ 074 ④ \0【解】转义字符有三种书写形式:反斜杠字符后接上某个规定的字符;反斜杠字符后接上1至3个八进制数字符;反斜杠字符和字符x之后接上1至2个十六进制数字符。
C语言的简答题含解答共100道题
C语言的简答题含解答共100道题1. 什么是C语言?●C语言是一种通用的编程语言,由Dennis Ritchie于1972年开发。
它被广泛用于系统编程、嵌入式开发和应用程序开发。
2. C语言的注释如何表示?●注释可以使用`/*`和`*/`包围起来,或者使用`//`开始的单行注释。
3. 如何声明一个整数变量?●使用语法:`int variable_name;`,例如:`int age;`4. 如何将值赋给一个变量?●使用赋值运算符`=`,例如:`age = 25;`5. 什么是标识符?●标识符是用来命名变量、函数和其他用户定义的实体的名称,它们必须遵循一定的命名规则。
6. C语言的基本数据类型有哪些?●整数类型(int、short、long)、浮点数类型(float、double、long double)、字符类型(char)等。
7. 如何定义常量?●使用`#define`预处理指令或`const`关键字,例如:`#define PI 3.141592` 或`const int max_age = 100;`8. 什么是C语言中的运算符?●运算符用于执行各种操作,如加法、减法、乘法、除法等。
常见运算符包括`+`、`-`、`*`、`/`、`%`等。
9. 如何在C语言中获取用户输入?●使用`scanf`函数来接收用户输入,例如:`scanf("%d", &number);`10. 如何在C语言中打印输出?●使用`printf`函数来输出内容,例如:`printf("Hello, World!");`11. 什么是条件语句?C语言中最常见的条件语句是什么?●条件语句用于根据条件执行不同的代码块。
C语言中最常见的条件语句是`if`语句。
12. `if`语句的基本结构是什么?●`if`语句的基本结构如下:```cif (condition) {// 代码块}```13. 如何使用`else`扩展`if`语句以处理多个条件?●使用`else if`可以在一个`if`语句中处理多个条件,例如:```cif (condition1) {// 代码块1} else if (condition2) {// 代码块2} else {// 默认代码块}```14. 什么是循环?C语言中有哪些类型的循环?●循环是一种重复执行一段代码的结构。
(完整版)C语言100个经典题目
C语言程序设计习题授课对象:信息奥赛辅导成员授课时间:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?__________________________________________________________________程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…。
___________________________________________________________________程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf(“%12ld %12ld”,f1,f2);if(i%2==0)printf(“\n");/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/}}上题还可用一维数组处理,you try!题目:判断101—200之间有多少个素数,并输出所有素数。
__________________________________________________________________程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
___________________________________________________________________程序源代码:#include “math。
h”main(){int m,i,k,h=0,leap=1;p rintf(“\n”);for(m=101;m〈=200;m++){ k=sqrt(m+1);for(i=2;i〈=k;i++)if(m%i==0){leap=0;break;}if(leap){printf(“%-4d”,m);h++;if(h%10==0)printf(“\n");}leap=1;}printf(“\nThe total is %d”,h);}题目:打印出所有的“水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
c语言面试题目100及最佳答案
c语言面试题目和答案1、请填写bool , float, 指针变量与“零值”比较的if语句。
提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。
例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。
(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )100 条经典C语言笔试题目(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
100 条经典C语言笔试题目(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C 程序,请计算sizeof 的值。
char str[] = “Hello”;char *p = str ;i nt n = 10;请计算(1)sizeof (str ) = (2)s i zeof ( p ) = (3)sizeof ( n ) =【标准答案】(1)6、(2)4 、(3 )4(4)void Func ( char str[100]){……;}请计算sizeof( str ) =(5)void * p = malloc( 100 );请计算sizeof ( p ) =【标准答案】(4)4、(5)44、用变量a 给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef u nion {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too; DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max)); 的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data 是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然... 在某些16位编辑器下, int 可能是2字节,那么结果是int2 + DATE10 + double8 = 206、请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
100个经典c语言例题(带答案)
100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典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.程序分析:请利用数轴来分界,定位。
c语言考试题及答案以及解析
c语言考试题及答案以及解析一、选择题1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A解析:在C语言中,关键字是保留的词汇,用于表示特定的语法结构。
int是C语言中用于声明整型变量的关键字。
2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,乘法运算符是星号(*),用于计算两个数的乘积。
二、填空题1. 在C语言中,以下代码片段的输出结果是:```cint main() {int a = 5;printf("%d", a);return 0;}```输出结果为:_________答案:5解析:代码中的printf函数用于输出变量a的值,a被初始化为5,因此输出结果为5。
2. 下列代码段中,变量b的值是多少?```cint main() {int a = 10, b;b = a + 5;printf("%d", b);return 0;}```变量b的值为:_________答案:15解析:变量b被赋值为变量a加上5,由于a的值为10,所以b的值为15。
三、简答题1. 简述C语言中的数组是什么,并给出一个数组的声明和初始化的例子。
答案:C语言中的数组是一种数据结构,用于存储相同类型的多个元素。
数组的声明需要指定元素的类型和数组的长度。
数组的初始化可以在声明时完成。
解析:例如,声明一个整型数组并初始化:```cint numbers[5] = {1, 2, 3, 4, 5};```2. 解释C语言中的函数是什么,并给出一个简单函数的定义和调用的例子。
答案:C语言中的函数是一段具有特定功能的代码块,可以接收参数,并返回一个值。
函数的定义包括函数的返回类型、名称、参数列表和函数体。
函数的调用是使用函数名称和必要的参数来执行函数。
解析:例如,定义一个函数来计算两个数的和,并调用它:```cint add(int x, int y) {return x + y;}int main() {int result = add(5, 10);printf("%d", result);return 0;}```四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
C语言基础练习100题含标准答案
C语言基础练习100题含标准答案1. 编写一个C语言程序,要求输出"Hello, World!"#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}2. 编写一个C语言程序,要求输出两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}3. 编写一个C语言程序,要求输出一个整数的平方。
#include <stdio.h>int main() {int num, square;printf("请输入一个整数:");scanf("%d", &num);square = num * num;printf("该整数的平方为:%d\n", square);return 0;}4. 编写一个C语言程序,要求输出1到10的所有整数。
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;}5. 编写一个C语言程序,要求输出1到10的所有整数的和。
#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 10; i++) {sum += i;}printf("1到10的所有整数的和为:%d\n", sum);return 0;}6. 编写一个C语言程序,要求输入一个字符串并输出该字符串。
C语言基础练习100题(含答案解析)
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 1220、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye! Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是__________.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-1 46、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 10 50、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 360、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1 C) 8 D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}}该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=4 74、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
(完整版)C语言试题及答案解析
C语言一、选择题(第题2分,共20分)1.一个C程序的执行是从 A 。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 523.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~21474836474.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。
A) float B) char C) int D) double5. putchar函数可以向终端输出一个D 。
A) 整型变量表达式 B) 实型变量值C) 字符串 D) 字符或字符型变量值6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。
A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出C) 右对齐输出该字符串,左补空格 D) 输出错误信息7.判断char型变量ch是否为大写字母的正确表达式是 C 。
A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。
c语言面试题目100及最佳答案
c语言面试题目100及最佳答案在面试过程中,了解和掌握一些常见的C语言面试题目及其最佳答案是至关重要的。
下面将介绍一百个C语言面试题目以及它们的最佳答案,帮助你更好地准备和应对C语言面试。
1. C语言的特点是什么?C语言是高级程序设计语言,具有简洁、灵活、高效等特点。
2. 什么是编译器?编译器是将高级语言源代码转换为目标代码的程序。
3. 什么是链接器?链接器是将目标代码和库文件连接起来生成可执行文件的程序。
4. C语言中的数据类型有哪些?C语言中的数据类型包括整型、浮点型、字符型、数组、指针等。
5. 请解释一下const关键字的作用。
const关键字用于定义常量,被const修饰的变量的值在程序执行过程中不能被修改。
6. 请解释一下volatile关键字的作用。
volatile关键字用于告知编译器该变量的值可能会被意外地修改,编译器不会对该变量进行优化。
7. 请解释一下static关键字的作用。
static关键字可以用于函数、变量和全局变量。
在函数中,static关键字表示该函数只能在当前源文件中使用;在变量中,static关键字表示该变量的作用域仅限于当前源文件中。
8. C语言中的自动变量和静态变量有什么区别?自动变量在函数内部声明和定义,函数调用结束后会被销毁;而静态变量在函数内部声明和定义,但具有全局生命周期,在函数调用结束后不会销毁。
9. 什么是指针?指针是存储变量内存地址的变量,可以通过指针直接访问和修改该变量的值。
10. 请解释一下指针和数组之间的关系。
指针和数组在某种程度上是等价的,数组名可以看作是指向数组第一个元素的指针。
11. 请解释一下指针的运算。
指针运算包括指针的加法和减法运算,指针加上或减去一个整数n 时,指针会向前或向后移动n个元素的位置。
12. 请解释一下指针和函数之间的关系。
指针可以作为函数的参数传递,通过指针可以改变函数外部变量的值。
13. 什么是动态内存分配?动态内存分配是在程序运行过程中根据需要分配和释放内存空间。
c语言面试题目100及最佳答案
c语言面试题目100及最佳答案c语言面试题目100及最佳答案1、请填写bool , float, 指针变量与“零值”比较的if语句。
提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。
例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。
(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )100 条经典C语言笔试题目(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
100 条经典C语言笔试题目(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C 程序,请计算sizeof 的值。
char str[] = “Hello”;char *p = str ;i nt n = 10;请计算(1)sizeof (str ) = (2)s i zeof ( p ) =(3)sizeof ( n ) =【标准答案】(1)6、(2)4 、(3 )4(4)void Func ( char str[100]){……;}请计算sizeof( str ) =(5)void * p = malloc( 100 );请计算sizeof ( p ) =【标准答案】(4)4、(5)44、用变量a 给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10];f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef u nion {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max)); 的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data 是一个struct, 每个变量分开占用空间. 依次为int4 +DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然... 在某些16位编辑器下, int 可能是2字节,那么结果是int2 + DATE10 + double8 = 206、请问以下代码有什么问题:int main(){char a;char *str=&astrcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
C语言100道经典、实用、趣味程序设计编程百例精解
1.绘制余弦曲线摘要在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线。
关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。
在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计如果在程序中使用数组,这个问题十分简单。
但若规定不能使用数组,问题就变得不容易了。
关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。
为了获得本文要求的图形就必须在一行中一次输出两个“*”。
为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。
将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。
程序中利用反余弦函数acos计算坐标(x,y)的对应关系。
使用这种方法编出的程序短小精炼,体现了一定的技巧。
*程序说明与注释#include<stdio.h>#include<math.h>int main(){double y;int x,m;for(y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/{m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/for(x=1;x<m;x++) printf(" ");printf("*"); /*控制打印左侧的 * 号*/for(;x<62-m;x++)printf(" ");printf("*\n"); /*控制打印同一行中对称的右侧*号*/}return 0;}2.绘制余弦曲线和直线摘要在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。
C语言必考100题解析汇报
1.按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。
2.输入两个整形数并打印,如果用户不慎输入了非法字符,那么程序提示“输入数据类型错误”。
3.已知三角形的三边长a,b,c,要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积(注意不存在的情况)。
4.编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
5.任意从键盘输入一个三位整数,要求正确分离它的个位,十位和百位数,并分别在屏幕上输出。
6.写一个函数实现统计一个输入的整形数的位数。
7.编程计算方程ax*x+bx+c=0的根,a,b,c由键盘输入,只是用主函数来实现。
8.编写三个函数,分别在b*b-4*a*c大于0、小于0、等于0时进行调用,并输出结果,在主函数中读入a、b、c的值。
9.从键盘输入你和你朋友的年龄,变成判断谁的年龄大,并打印最大者的年龄。
10.从键盘输入一个年份,判断该年是否是闰年,并输出结果。
11.判断某人是否属于肥胖体型。
根据身高与体重因素,医务工作者经广泛的调查分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,单位为kg,h为身高,单位为m)。
当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,为肥胖。
编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。
12.利用switch语句将百分制成绩转化为五分制成绩。
13.利用switch语句将五分制成绩转换成对应分数围并输出。
14.编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
15.利用时间函数编写一个猜数程序。
16.编程实现计算n的阶乘。
17.利用函数递归实现计算n!。
18.利用π/4=1-1/3+1/5-1/7……计算π的值直到最后一项的绝对值小于0.0001为止,要求统计总共累加了多少项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。
2.输入两个整形数并打印,如果用户不慎输入了非法字符,那么程序提示“输入数据类型错误”。
3.已知三角形的三边长a,b,c,要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积(注意不存在的情况)。
4.编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
5.任意从键盘输入一个三位整数,要求正确分离它的个位,十位和百位数,并分别在屏幕上输出。
6.写一个函数实现统计一个输入的整形数的位数。
7.编程计算方程ax*x+bx+c=0的根,a,b,c由键盘输入,只是用主函数来实现。
8.编写三个函数,分别在b*b-4*a*c大于0、小于0、等于0时进行调用,并输出结果,在主函数中读入a、b、c的值。
9.从键盘输入你和你朋友的年龄,变成判断谁的年龄大,并打印最大者的年龄。
10.从键盘输入一个年份,判断该年是否是闰年,并输出结果。
11.判断某人是否属于肥胖体型。
根据身高与体重因素,医务工作者经广泛的调查分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,单位为kg,h为身高,单位为m)。
当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,为肥胖。
编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。
12.利用switch语句将百分制成绩转化为五分制成绩。
13.利用switch语句将五分制成绩转换成对应分数围并输出。
14.编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
15.利用时间函数编写一个猜数程序。
16.编程实现计算n的阶乘。
17.利用函数递归实现计算n!。
18.利用π/4=1-1/3+1/5-1/7……计算π的值直到最后一项的绝对值小于0.0001为止,要求统计总共累加了多少项。
19.编程输出正三角格式的九九乘法表。
20.编程输出下三角格式的九九乘法表。
21.从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“YES”,否则输出“NO!”。
22.编写一个程序实现输出1—100之间所有素数。
23.编写一个程序实现输出任意指定m、n之间的所有素数。
24.读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。
25.打印所有的水仙花数。
所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
(例159=1*1*1+3*3*3+5*5*5)26.鸡兔同笼,共有98个头,386只脚,编程求鸡兔各多少只。
27.用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。
28.三色球问题。
若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?29.打印100以整数的平方根表。
30.编程打印一下图案:31.设计一个函数,计算两个正整数的最小公倍数。
32.设计一个函数,计算两个正整数的最大公约数。
33.编程使二维数组a[m][n]按如下输入输出例:input 1 2 3 output 1 44 5 6 2 53 634.从键盘输入某班学生某门课的成绩(每班人数最多不超过40人,具体人数由键盘输入),试编程打印最高分及其学生序号。
35.从键盘输入五个数,利用冒泡法排序,输出排序后的结果。
36.从键盘输入五个数,利用选择法排序,输出排序后的结果。
37.从键盘任意输入五个学生的,编程找出并输出按字典顺序排在最前面的学生。
38.从键盘任意输入五个学生的,编程找出并输出按字典顺序的五个学生。
39.编程实现从键盘任意输入5个正整数,统计非负数个数,并计算非负数之和。
40.从键盘任意输入5个正整数,用函数编程实现将其中最大数和最小数的位置对换后,再输出调整后的数组。
41.输入5*5的矩阵,编程实现:求两条对角线上行、列下标均为偶数的各元素之积。
(提示(i==j)||(i+j==4)&&(i%2==0)&&(j%2==0))42.编程将下列矩阵中的元素向右移动一列,最后一行移至第一列。
1 9 35 10 2143.输入一行字符,统计其中的英文字符、数字字符、空格及其他字符的个数。
44.从键盘任意输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,然后将交换后的数据重新输出。
45.用字符指针编程实现字符串复制函数。
46.用字符指针编程实现求字符串长度函数。
47.编写一个程序,可以实现在一个数组中删除指定的元素。
如:数组元素为1,2,3,输入3,便删除3,输出1,2;若输入4,则继续输出1,2,3。
48.编程将若干字符串按字母顺序由小到大排序后输出。
(二维数组和指针数组均可)。
49.编程输入一个班的某课程的学生成绩,计算其平均分,然后输出,班级人数由键盘输入。
50.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串(要求:使用头指针和尾指针来实现)。
51.编程判断输入的一串字符是否为“回文”。
所谓回文是指顺读和倒读都一样的字符串,如“ABCCBA”是回文。
52.用指针数组编程实现:从键盘任意输入一个数字表示月份值n,程序输出该月份的英文表示,若n不在1~12之间,则输出“Illegal month”。
("January","February","March","April"," May","June","July","Aguest","September","October","November","December")(课本308)53.从键盘任意输入5个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组中的位置。
54.不使用函数strcat(),编程实现字符串连接函数(使用指针实现)。
55.不使用函数strcat(),编程实现字符串连接函数(使用数组实现)。
56.编程实现将二维数组a[m][n]任意向右平移i各单位,i<n,将数据在二维数组中的位置改变后在进行输出。
57.利用公式Cij=Aij+Bij计算m*n阶矩阵A和m*n阶矩阵B之和,并输出。
(提示:用二维数组实现矩阵相加)58.编写一个函数,利用数组实现对字符串的逆序排放并在主函数中输出。
59. 有如下数列,“1,1,2,3,5,8,13……”,编程实现输出其前20项,每行五个。
60.编程打印如下的辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 161.编写一个Insert()函数,实现对一个有序数列a[n]的插入。
62.编写一个Delet()函数,实现对一个有序数列某个特定元素的删除,释放其所占有的空间,并输出处理后的数组,若没有找到,则只输出not find!63.编程实现:任意输入英文星期几,在查找星期表后输出对应的数字。
若为查找到,则输出Not find!0 Sunday1 Monday2 Tuesday3 Wednesday4 Thursday5 Friday6 Saturday64.编写一个计算任意m行n列的二维数组中元素的最大值,并指出其所在的行列的函数FindMax()。
假设利用FindMax()计算3个班每班4个学生的某门成绩的最高分,并指出其所在的行列。
65.利用动态存分配实现:编程输入一个班的某门课成绩,计算平均分,然后输出。
班级人数由键盘输入。
66. 利用动态存分配实现:编程输入m个班(每班n个学生)某门课的成绩,计算最高分,并指出具有最高分的学生是第几个班的第几个学生。
67.利用指针,编程实现对于长度为n的字符串输出n次,每次较上次首字符不再输出。
例如:”abcde”,依次输出abcde bcde cde de e 。
68.结构体数组应用:模拟洗牌和发牌过程。
一副扑克有52,分4种花色(Suit),黑桃(Spades),红桃(Hearts),草花(Clubs),方块(Diamonds)。
每种花色有分13牌面(Face):A,2,3,4,5,6,7,8,9,10,Jack,Queen,King。
编程完成洗牌和发牌过程。
(难度很大)69编写一个程序实现给出年月日,计算该日是该年的第几天。
70.给出年份和该年第几天,输出这天是该年的几月几日。
71. .编写一个函数,求一个给定数的所有因子。
如72=2*2*2*3*3.72. 编写一个函数,利用循环调用函数 依次返回两个整数m ,n 的所有公约数。
例如100,50返回值依次为 50,25,10,5,2.73. 写一个函数,实现计算n!,通过主函数调用,实现计算组合数。
74. 有一行文字,要求删去其中某个字符。
此行文字和要删的字符均由键盘输入,要删的字符以字符形式输入(如输入a 表示要删去所有的字符a).75.输入一行字符,统计其中多有少个单词。
假设单词之间以空格分开。
(提示:判断是否有新单词出现的方法—当前被检字符不是空格,而前一被检字符不是空格,则表示有新单词出现)76.编写一个函数实现Mystrcmp ()用于实现strcmp ()的功能,,将两个字符串进行比较,,然后将两个字符串中第一个比相同的字符的ASCII 码值之差作为返回值返回。
77. 写一个函数,判断自身不存在相同字符的两个字符串是否可以通过重排字符而得到,例如dare 和read 、dear 都有这种关系。
78. 输入10个整数,将其中最小的数与第一个数交换,最大的数与最后的一个数对换。
写三个函数:1)输入10个数 2)进行处理 3)输出10个数79. 有n 个整数,使前面各数向后平移m 个位置,最后m 个数变成最前的m 个数。
例1 2 34 5 前移两位3 4 5 1 2,改变数据在计算机存中的位置,并进行输出。
80. 在主函数中输入10个等长的字符串。
用一个函数对它们排序,然后在主函数输出10个已排好序的字符串。
81. 在主函数中输入10个任意长度的字符串。
用一个函数对它们排序,然后在主函数输出10个已排好序的字符串。
82.利用一维数组实现替代二维数组来完成对m*n 阶数组的转置。
要求:改变数据在计算机存中的位置,然后在主函数中输出。
83. 写一字符串,包含n 个字符,写一函数,将此字符串从第m 个字符开始的全部字符复制成另一个字符串,并进行输出。