good c questions!

来源:互联网 发布:淘宝手包 编辑:程序博客网 时间:2024/04/20 20:49
 
一、 填空题
(1)有以下程序,程序的输出结果是______(注意: ch[0]在低字节,ch[1]在高字节)。
#include<stdio.h>
union pw
{
    int i;
    char ch[2];
 }a;
main()
{
    a.ch[0] = 13;
    a.ch[1] = 0;
    printf("%d/n", a.i);
}
(2)下面函数的返回值是______。
int data()
{
    float x = 9.9;
    return(x);
}
(3)下面程序段的输出结果是______。
Union
{
    int b1, b2, b3;
} yy;
yy.b1 = 1;
yy.b2 = 2;
yy.b3 = 10 * yy.b1 + yy.b2;
printf("%d, %d, %d", yy.b1, yy.b2, yy.b3);
   …
}
(4) 请计算sizeof的值:
char str[] = "Her" ;
char *p = str ;
int n = 10;
请计算
sizeof (str ) = ____
sizeof ( p ) = _____
sizeof ( n ) = ______
(5) 下列程序段的输出是_______。
#define f(a, b, x)  a*x+b
printf("%d, %d/n", f(3,2,1), f(6, 5, f(3, 2, 1)));
(6) 下列程序段的输出是_____。
int  *p, *q, k=5, j=6;
q=&k;
p=q;
q=&j;
printf("%d", *p);
(7) 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是____。
(8)设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____________。
(9)用变量a给出下面的定义:
        a. 一个整型数;
        d. 一个指向整型数的指针;
        c. 一个指向指针的的指针,它指向的指针是指向一个整型数;
        d. 一个有10个整型数的数组;
        e. 一个有10个指针的数组,该指针是指向一个整型数的;
        f. 一个指向有10个整型数数组的指;
        g. 一个指向函数的指针,该函数有一个整型参数并返回一个整型;
        h. 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。
 (10)关键字static的作用是什么?
(11)关键字volatile有什么含意?
(12)一个参数既可以是const还可以是volatile吗?为什么?
(13)一个指针可以是volatile 吗?为什么?
(14)请说明外部变量的特性。(至少三点)
(15)外部变量和静态变量的区别是什么?
(16)解释堆和栈的区别
(17)写一个使用回调函数的例子
(18)说明一个变量和定义一个变量有什么区别?
(19)可以在头文件中说明static变量吗?
(20)为什么C中可实现可变参数.
(21) 哪种方法更好呢?(如果有的话)为什么?
#define dPS struct s *
typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。