黑马程序员技术交流社区
标题:
C语言练习题
[打印本页]
作者:
枫叶路过123
时间:
2014-11-4 00:00
标题:
C语言练习题
1. 从源代码helloworld.c经历 预编译,汇编,编译,连接四个过程到可执行文件helloworld。并写出使用gcc编译器对应每个过程的语句。连接的时候 -l
gcc –o a.i a.c –E gcc -E a.c - o a.i //预编译
gcc –o a.s a.i –S gcc -S a.i -o a.s //编译
gcc –o a.o a.s –c gcc -c a.s -o a.o //汇编
gcc a -o a.o gcc -o a a.o
2. C语言的基本构成单位是__函数___.
3. 冯诺依曼型计算机体系结构由 运算器,控制器,存储器,输入,输出 五部分构成。
4. 请说明Byte和bit的区别和联系。
Byte是字节,bit是位。一个bit由0和1构成,一个byte包含8个位,字节是计算机处理的最小单位。
5. 已经知道如下:GB MB KB Byte bit单位
一个文件大小为1073741824字节请算出处该文件有多少GB
答:1G
6. 计算机病毒___不能___(能,不能)让人感染生病?
7. C语言的标示符(变量名)的特点。只能以 数字,字母,下划线 构成,且不能以数字开头.
8. 请简单说明标识符和关键字的区别。
关键字是构成程序的基本语法,标识符是我们在编程的时候为了好记而起的名字,标识符不能使关键字。标识符是用户自定义,关键字是系统预定义。
9. 请简单说明计算机内部存储是采用2进制,而不是其它进制
因为电脑只有两种状态,高电压和低电压,就是0,或者1,所以2进制正好表示电脑的存储。
10. 如下所示有一个数(100100111110)2 请写出该数8进制数和16进制数。 04476 0x93e
11. 一个八进制数0711 请分别写出16进制和10进制数、
0x1c9 457
12. 用C语言写出一个简单的Helloworld程序(gnuLinux gcc所识别的版本)。
#include<stdio.h>
Int main()
{
Printf(“hello world\n”);
Return 0;
}
13. 计算机语言总的来说分为 机器语言, 汇编语言, 高级语言 三大类。
14. 一个函数由两部分组成,它们是 返回值 和 函数体 。
15. 一个C语言程序总是从 main 开始执行,即__main___就是C程序的入口。
16. 将ab321321321.____c作为变量名____是____(是否)合法?
17. 以下说法中正确的是: c 。
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须放在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
18. 一个C源程序至少包含一个 ,即 。
1.编写一个程序,以月/日/年(即mm/dd/yy)的格式接受用户录入的日期信息,并以年月日(及yyyymmdd)的格式将其显示出来:
Entera date(mm/dd/yyyy):10/11/2010
Youentered the date 20101011
Int a,b,c;
Printf(“Enter a date(mm/dd/yyyy):”);
Scanf(“%d/%d%d”,&a,&b,&c);
Printf(“You entered the date %d%d%d”,c,a,b);
2. printf函数基本使用,
分别使用后续格式控制字%d %x %f \t \n \b
1). 将整型值7、100、27,以多种格式打印到屏幕%d %x %f。
2). %f练习,打印17.2365
3). 在屏幕的输出字符中打印出 字符串 %d、单引号、双引号
4). 使用sizeof()函数测试打印各种数据类型在32平台计算机上所占字节长度
inti,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("i + j = %x\t",i+20);
printf("\n");
}
printf("%f\n",17.23455);
printf("%s\n","hello world");
printf("%s\n","\' \"");
printf("%%d");
3. 计算题
根据给出的函数原型完成下列题目要求。
1). 整形数值使用 函数原型int mypow(int n);
计算任意自然数的平方值,并打印输出结果
//平方
intmypow(intn)
{
returnn*n;
}
2). 除法题
函数原型 int
计算25 除以2 的值(要求%d 和%f分别显示结果)
//除法
intchufa(intm,intn)
{
inta;
a=m/n;
returna;
}
floatchufa1(intm,intn)
{
floata;
a=1.0*m/n;
returna;
}
4. 数学表达式100!结果末尾有多少个0?尝试利用用编程求出
//阶乘
intfactorial(intn)
{
if(n==1)
return1;
else
returnn*factorial(n-1);
}
//查找一个数后面有几个0
intfind0(intn)
{
intcount=0;
while(n%10==0)
{
count++;
n/=10;
}
returncount;
}
5.实现函数原型 int isPrimer(int n);该函数能够判断参数n是不是素数
If 是 返回1 否则返回0
//判断素数
intisPrimer(intn)
{
inti;
for(i=2;i<n;i++)
{
if(n%i==0)
return0;
}
return1;
}
6.有一个数学表达式1+2+3+4+……+n
给定函数n求出前n项和 分别用for循环 和递归实现
函数原型 int SumOfN(int n);
//求和
intMySum(intn)
{
inti;
intsum=0;
for(i=1;i<=n;i++)
sum+=i;
returnsum;
}
intMySum1(intn)
{
if(n==1)
return1;
else
returnMySum1(n-1)+n;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2