}
三、编程题
1. 已有变量定义和函数调用语句:int x=57 ; isprime(x); 函数isprime( ) 用来判断一个整型数a是否为
素数,若是素数,函数返回1,否则返回0。请编写isprime函数。
isprime(int a) { }
2. a是一个2X4的整型数组,且各元素均已赋值。函数max_value可求出其中的最大的元素值max,并将此值
返回主调函数。今有函数调用语句max=max_value(a),请编写max_value函数。
max_value(int arr[ ][4]) { }
八、编译预处理
选择1.以下叙述中正确的是________.
a)在程序的一行上可以出现多个有效的预处理命令行 b)使用带参的宏时,参数的类型应与宏定义时的一致 c)宏替换不占用运行时间,只占用编译时间 d)在以下定义中C R是称为“宏名”的标识符 #define C R 045
2.以下程序的运行结果是________. #define MIN(x,y) (x)<(y)?(x):(y) main()
{int i=10,j=15,k; k=10*MIN(i,j); printf(\ }
a)10 b)15 c)100 d)150 3.若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2
则执行以下printf语句后,输出结果是_______. int a;a=Y; printf(\
printf(\
a)7 b)12 c)12 d)7 6 6 5 5 4.请读程序: #include
int a=3,b=4,c; c=MUL(a++,b++); printf(\ }
上面程序的输出结果是__________. a)12 b)15 c)20 d) 16 5.对下面程序段: #define A 3
#define B(a) ((A+1)*a) ...
x=3*(A+B(7));
正确的判断是_________.
a)程序错误,不许嵌套宏定义 b)x=93 c)x=21 d)程序错误,宏定义不许有参数
6.以下正确的描述是____________. a)C语言的预处理功能是指完成宏替换和包含文件的调用 b)预处理指令只能位于C源程序文件的首部 c)凡是C源程序中行首以\标识的控制行都是预处理指令 d)C语言的编译预处理就是对源程序进行初步的语法检查
7.在\文件包含\预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.
a)仅仅搜索当前目录 b)仅仅搜索源程序所在目录
c)直接按系统设定的标准方式搜索目录 d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索 九、指针 一、选择题
1.变量的指针,其含义是指该变量的____B_____.
a)值 b)地址 c)名 d)一个标志 2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__D___.
a)a,point,*&a b)&*a,&a,*point c)*&point,*point,&a d)&a,&*point ,point 3.若有说明;int *p,m=5,n;以下正确的程序段的是___D_____.
a)p=&n; b)p=&n; c)scanf(\d)p=&n; scanf(\4.下面程序段的运行结果是___A______. char *s=\ s+=2;printf(\
a)cde b)字符'c' c)字符'c'的地址 d)无确定的输出结果
5.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是___B_____. a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2); 6.以下正确的程序段是____B_____.
a)char str[20]; b)char *p; c)char str[20]; d)char str[20],*p=str; scanf(\7.若有说明语句 char a[]=\ char *p=\ 则以下不正确的叙述是___B_____.
a)a+1表示的是字符t的地址 b)p指向另外的字符串时,字符串的长度不受限制 c)p变量中存放的地址值可以改变 d)a中只能存放10个字符 8.下面程序的运行结果是___B____.
#include
#include
char *s1=\ char *s2=\ s1+=2;s2+=2;
printf(\ }
a)正数 b)负数 c)零 d)不确定的值 9.下面程序的运行结果是___A____. #include
while(s1 a)7654321 b)1714171 c)1711717 d)7177171 10.若有以下定义,则对a数组元素的正确引用是____D_____. int a[5],*p=a; a)*&a[5] b)a+2 c)*(p+5) d)*(a+2) 11.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为__D____. a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j 12.若有以下定义,则p+5表示___A____. int a[10],*p=a; a)元素a[5]的地址 b)元素a[5]的值 c)元素a[6]的地址 d)元素a[6]的值 二、填空题 1.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空。 #include \ main() {int *a,*b,*c,num,x,y,z; a=&x;b=&y;c=&z;
相关推荐: