第三部分 江苏省二级统考近五年试题汇编
4、FILE *fp1, *fp2;long a[2]={ 12345678,12345678};执行:
fp1=fopen(“f1.dat”,”w”);fprintf(fp1,”%ld%ld”,a[0],a[1]);fclose(fp1); fp2=fopen(“f2.dat”,”wb”);fwrite(a,sizeof(long),2,fp2);fclose(fp2); f1,dat,f2.dat文件的长度分别是: (4) 字节和 (5) 字节。 ? 阅读程序(共7分)
5、以下程序运行后输出 (6) 。 #include
int f(char *s1,char *s2) { static int n1,n2; while(*s1++)n1++; while(*s2++)n2++; return n1-n2; }
main( )
{ printf(“%d”,f(“c:\\\\program”,”\\12a\\t34\\n”));} 6、下列程序运行后,x的值 (7) 。 main( ) { int x,y;
for(x=1,y=1;x<=100;x++) { if(y>=20)break;
if(y%3= =1){y+=3;continue;} y-=5; }
printf(“%d\\n”,x); }
7、以下程序运行后输出 (8) 。 #include
{ char s[20]=”acef”,s1[ ]=”bd”; int i,j,k;
for(k=0;s1[k]!=’\\0’;k++)
{ j=0;while(s1[k]>=s[j]&&s[j]!=’\\0’)j++; for(i=strlen(s);i>=j;i--)s[i+1]=s[i]; s[j]=s1[k]; }
puts(s); }
8、以下程序运行后输出结果的第一行是 (9) ,第二行是 (10) 。 int m=5,n=7,a[10]={0,1,2}; voidf1(void); void f2(int m); main( ) { int i;
第三部分 江苏省二级统考近五年试题汇编
for(i=0;i<7;i++)f1( );
f2( 1);printf(“\\n%d,%d”,a[m],a[n]); }
void f1(void) { static int n=3;
a[n]=a[n-1]+a[n-2]+a[n-3];n++; }
void f2(int m) { for(;m<3;m+=2) { int m;
for(m=1;m<4;m++)
printf(“%d,”,a[m++]); } }
9、以下程序运行后输出结果的第一行是 (11) ,第二行是 (12) 。0 extern int m1,m2;
void fun(int n,int *p1,int *p2) { int i; *p1=1;*p2=1;
for(i=1;i<=n;i++){ *p1+=3;*p2*=3;} m1+=*p1;m2+=*p2; }
int m1,m2; main( )
{ int i,k1[4],k2[4]; for(i=0;i<4;i++)
fun(i,&k1[i],&k2[i]);
for(i=0;i<4;i++)printf(“%d,”,k1[i]); printf(:%d\\n”,m1);
for(i=0;i<4;i++)printf(“%d,”,k2[i]); printf(“%d”,m2); }
? 完善程序(共18分) 10、 以下程序中函数encode完成一字符串的加密功能。将s1字符串中的字符经过变换后保存在s2指向的数组中。二维数组cs保存了一个明码密码对照表,第一行是明码字符,第二行是对应的密码字符。加密方法如下:从s1字符串中每取一字符,均在cs表中第一行中查找有无该明码字符,若找到则将对应的密码字符放入存入s2中,否则将s1中的原有字符放入s2中。 #include
char cs[2][10]={“aceghjlnp”,”fonptiude”}; void encode(char *s1,char *s2) { int n,i,j;
for(n=0;s1[n]!=’\\0’;n++)
第三部分 江苏省二级统考近五年试题汇编
{ for(i=0;i<10&&s1[n]!=cs[0][i]; (13)) if(i<10)s2[n]= (14); else s2[n]= (15) ; }
s2[n]=’\\0’; }
main( )
{ char ts[80]=”jntwrnwt”,td[80]; encode(ts,td); puts(td); }
11、以下程序依次输入某单位没位职工的姓名和工资数(整数型),然后计算发放工资时所需发给每位职工的不同面值纸币张数,并计算总和以及累计所需不同币值纸币的张数。
#include
char name[10]; /*姓名*/ int total; /*工资数*/
int mnum[7]; /*发放工资时所需不同币值纸币的张数*/ } st[21];
int mvalue[7]={100,50,20,10,5,2,1}; main( ) { FILE *fp;
int n=0,i,j,wage;
fp=fopen(“wage.dat”,”r”); if(fp= =NULL)exit(1); while(!feof(fp))
{ fscanf(fp,”%s%d”,st[n].name,&st[n].total); wage=st[n].total;
for(j=0;j<7&&wage;j++)
{ st[n].mnum[j]= (16) ; wage= (17) ; }
(18); }
strcpy(st[n].name,”summary”); for(i=0;i { st[n].total+=st[i].total; for(j=0;j<7;j++) st[n].mnum[j]+= (19) ; } for(i=0;i { printf(“\\n%s %d=”,st[i].name,st[i].total); for(j=0;j<7;j++) 第三部分 江苏省二级统考近五年试题汇编 printf(“%d “,st[i].mnum[j]); } } 12、以下函数的功能是以十进制字符形式打印出任一int型数。 #include if(n<0){ putchar(‘-‘); (20) ;} if( (21)!=0)f(j); putchar( (22)+’0’); } 13、以下程序中函数maxmin的功能是:对于x中存储的任意一个四位整数,求出:(1)组成以这个整数的四个数字由大到小排列后构成的最大的四位数;(2)组成以这个整数的四个数字由小到大排列后构成的最小的四位数;。 #include”stdio.h” void maxmin(int x,int *pmax,int *pmin) { int num[4],i,j,k,t; *pmax=0; *pmin=0; for(i=0;i<4;i++) { num[i]=x; x= (23) ;} for(i=0;i<3;i++) { k=i; for(j=i+1;j<4;j++) if(num[k] if( (24) ){t=num[i];num[i]=num[k];num[k]=t;} } for(i=0;i<4;i++) { *pmax= *pmax *10+ (25) ; *pmin = *pmin *10+ (26) ; } main( ) { int n=3169,max=0,min=0; maxmin(n,&max,&min); printf(“\\n%d%d”,max,min); } 14、设链表上的结点的数据结构定义如下: struct node{ int x; struct node *next; }; 函数create的功能是:创建一个有序的链表(结点中x的值按升序排列),链表中结点的个数为参数n的值,函数返回该有序链表的头指针。算法思想如下:每产生一个新结点,插入到链表中的恰当位置,使得插入新结点后的链表仍然保持有序。 (27) creat(int n) 第三部分 江苏省二级统考近五年试题汇编 { struct node *p, *p1, *p2, *h=NULL;int i=0; if(n<1)return NULL; while( (28) ) { p=(struct node * )malloc(sizeof(struct node)); scanf(“%d”,&p->x);p->next=NULL; if(h= =NULL) (29) ; else { p1=p2=h; while(p2&&p->x>=p2->x){p1=p2;p2=p2->next;} if( p2= =h){ (30);h=p;} else{p->next=p2;p1->next=p;} } i++; } return h; } 2002年春上机试卷 一、改错题 【题目】 下面的程序能够从键盘上接受一个含有空格的字符串,然后按照字典序对所有字符排序,再删除重复出现的字符。 含有错误的源程序如下: #include \void main() {char str[100],*p,*q,*r,c; printf(\ scanf(\ for(p=str;*p;p++) {for(q=r=p;*q;q++) if(*r>*q)*r=*q; if(r/=p){c=*r;*r=*p;*p=c;} } for(p=str;*p;p++) {for(q=p;*p= =*q;q++); strcpy(p+1,q); } printf(\} 【要求】 1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。 2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。 3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库江苏省计算机二级考试C语言试卷汇编(2001-2005)(4)在线全文阅读。
相关推荐: