黑马程序员技术交流社区

标题: 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