while(p[i][j]!='\\0')
{ if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0';
j+=2; }
}
printf(\%d\\n\,num); }
A 35 B 37 C 39 D 3975 20 下列程序运行后的输出结果是_A__。
void main()
{ char str[]=\
sub(str,0,n-1);
sub(str,0,strlen(str)-1); printf(\}
sub(str,n1,n2) char *str; int n1,n2; { char c,*p;
p=str+n2; str=str+n1; while(str
{ c=*str; *str=*p; *p=c;
str++; p--; } }
A tfosorciMThe_ B. ehT_Microsoft C tfosorciM_ehT D. Microsoft_The
二 填空题(每空3分,共30分)
1 以下程序的定义语句中,x[1]的初值是 2 ,程序运行后输出的内容是 2468 。
main()
{ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0; i<4; i++)
{ p[i]=&x[2*i+1]; printf(\printf(\}
2 以下程序的输出结果是 2 5 。
void swap(int *a, int *b) { int *t;
t=a; a=b; b=t;
}
main()
{ int i=2,j=5,*p=&i,*q=&j;
swap(p,q); printf(\}
3 以下程序的输出结果是 4 。
main()
{ int a[5]={2,4,6,8,10}, *p;
p=a; p++;
printf(\}
4 以下程序的输出结果是__55__。
#define M 5 #define N M+M main() { int k;
k=N*N*5; printf(\}
5 若有定义语句:int a[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是 2 。 6 若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是 12 ,*(a[1]+2)的值是 12 。 7 若有程序段:
int *p[3],a[6],i;
for(i=0;i<3;i++) p[i]=&a[2*i] ;
则*p[0]引用的是a数组元素 a[0] ,*(p[1]+1)引用的是a数组元素 a[3] 。
三 程序填空题(每空3分,共30分)
1 下面函数的功能是从输入的十个字符串中找出最长的那个串,请填空使程序完
整。
void fun(char str[10][81],char **sp) { int i;
*sp = 【1】str[0] ; for(i=1;i<10; i++)
if(strlen(*sp) 2 下面函数的功能是将一个整数字符串转换为一个整数,例如:\转换为1234,请填空使程序完整。 int chnum(char *p) { int num=0,k,len,j; len=strlen(p); for( ; 【3】*p ; p++) { k= 【4】*p-'0' ; j=(--len); while( 【5】j-- ) k=k*10; num=num+k; } return (num); } 3 下面函数的功能使统计子串substr在母串str中出现的次数,请填空使程序完整。 int count(char *str, char *substr) { int i,j,k,num=0; for(i=0; 【6】str[i] ;i++) for( 【7】j=i ,k=0;substr[k]==str[j];k++,j++) if(substr [ 【8】k+1 ]==’\\0’) { num++ ; break ; } return (num); } 4 下面函数的功能是用递归法将一个整数存放到一个字符数组中,存放时按逆序存放,如483存放成“384”,请填空使程序完整。 void convert(char *a, int n) { int i; if((i=n/10)!=0) convert( 【9】a+1 ,i); else *(a+1)=0; *a= 【10】n+'0’ ; } 结构体 文件 单项选择题(1~8题每题5分,9~18题每题6分,共100分) 1 有以下说明语句,对结构变量中成员age的正确引用是__A_。 struct student { int age; int sex; }stud1,*p; 2 说明语句如下,则正确的叙述是_D__。 union data { int x; char y; float z; }a; A data和a均是共用体类型变量 B a所占内存长度等于其成员x、y、z各在内存所占长度之和 C 任何情况下,均不能对a作整体赋值 D a的地址和它的各成员地址都是同一地址 3 共用体成员的数据类型_B__。 A 相同 B 可以不同也可以相同 C 长度一样 D 是结构体变量 4 由系统分配和控制的标准输出文件为__D_。 A 键盘 B 磁盘 C 打印机 D 显示器 5 下列关于C语言数据文件的叙述中正确的是 C 。 A C语言只能读写文本文件 B C语言只能读写二进制文件 C 文件由字符序列组成,可按数据的存放形式分为二进制文件和文本文件 D 文件由二进制数据序列组成

