printf (\[i]); printf (\\n \); }
解析:本题题干信息是能整除且不是偶数的所有整数之和。循环语句中i从1开始且每次增2,所以i始终是奇数,*n=j;语句是记录能够符合题意的各个整数的各数。 #include #include
int fun(int *s, int t, int *k) { int i; *k=0; 【15】 if(s[*k] return【16】; } main() {
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; clrscr(); fun(a, 10, &k);
printf(\\n \[k]); }
解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认*k的值为数组中的某一下标值,即*k=0。
(12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str) { int i;
for(i=0;【17】!= ′\0′;i++); return(i); }
解析: str是指针变量,它指向字符型数据,在循环过程中,可以用 *(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到 *(str+i)的值为′\0′为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。 (13)以下程序的输出结果为【18】。 #define JFT(x)x*x main() { int a, k=3; a=++JFT(k+1); printf(\); }
解析:宏替换的原则是按原样替换,本题中遇到形参x则以实参k+1替换,其他字符不变。所以JFT(k+1)经替换后为k+1*k+1,所以a=++k+1*k+1,若k+1,若k的值为3,则经过运算为a=4+1*4+1=9。
(14)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。 struct node { int info; 【19】link; };
解析: 本题中的结构类型名为struct node,所以空白处应填:struct node *。即定义一个指向自身的结构体指针。 (15)设有以下结构体类型: struct st
{ char name[8]; int num; float s[4]; }student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整: fwrite(student,【20】,1,fp);
解析: fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp),其中:
buffer:是一个指针变量,是要输出数据的起始地址 size:要写的字节数
count:要进行写多少个size字节的数据项 fp:文件型指针
选择题 01-05 D C C D B 06-10 A A C B A 11-15 A C B B A
16-20 D D B C B 21-25 D D A C A 26-30 A C B C C 31-35 C 36-40 B 41-45 B 46-50 A
D B C D A B B B D C A D D D C B