试卷编号:270
所属语言:计算机基础
试卷方案:字符串复制、连接、测长
试卷总分:160分
共有题型:3种
一、程序填空 共2题 (共计40分)
第1题 (20.0分) 题号:17 难度:中 第1章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。
-------------------------------------------------------*/
#include \"stdio.h\"
#include \"string.h\"
main ( )
{
char str1[80],str2[40];
int i,j,k;
gets(str1);gets(str2);
puts(str1);puts(str2);
/***********SPACE***********/
【?】;
puts(str1);
}
JOIN(s1,s2)
char s1[80],s2[40];
{
int i,j;
/***********SPACE***********/
【?】;
/***********SPACE***********/
for (i=0; 【?】'\\0';i++)
s1[i+j]=s2[i];
/***********SPACE***********/
s1[i+j]= 【?】 ;
}
答案:
=======(答案1)=======
JOIN(str1,str2)
=======(答案2)=======
j=strlen(s1)
=========或=========
for(j=0;s1[j]!='10';j++);
=========或=========
for(j=0;s1[j];j++);
=======(答案3)=======
s2[i]!=
=========或=========
*(s2 + i)!=
=======(答案4)=======
'\\0'
=========或=========
NULL
=========或=========
0
第2题 (20.0分) 题号:19 难度:中 第1章
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个字符串中的前N个字符复制到一个字符数组中去,
不许使用strcpy函数。
-------------------------------------------------------*/
main ( )
{
char str1[80],str2[80];
int i,n;
/***********SPACE***********/
gets(【?】);
scanf(\"%d\
/***********SPACE***********/
for (i=0; 【?】 ;i++)
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
printf(\"%s\\n\
}
答案:
=======(答案1)=======
str1
=======(答案2)=======
i n>i =========或========= i<=n-1 =========或========= n-1>=i =======(答案3)======= str2[i]=str1[i] =======(答案4)======= str2[n]='\\0' =========或========= str2[i]='\\0' =========或========= str2[n]=0 =========或========= str2[i]=0 二、程序改错 共2题 (共计60分) 第2题 (30.0分) 题号:28 难度:中 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:实现两个字符串的连接。 第1章 例如:输入dfdfqe和12345时,则输出dfdfqe12345. ------------------------------------------------------*/ #include\"stdio.h\" main() { char s1[80],s2[80]; void scat(char s1[],char s2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1); } void scat (char s1[],char s2[]) { int i=0,j=0; /**********FOUND**********/ while(s1[i]= ='\\0') i++; /**********FOUND**********/ while(s2[j]= ='\\0') { /**********FOUND**********/ s2[j]=s1[i]; i++; j++; } /**********FOUND**********/ s2[j]='\\0'; } 答案: =======(答案1)======= while( s1[i] != '\\0' )i++; =========或========= while(s1[i])i++; =========或========= while(s1[i]!=NULL)i++; =========或========= while( s1[i] != 0 )i++; =======(答案2)======= while( s2[j] != '\\0' ) =========或========= while(s2[j]) =========或========= while(s2[j]!=NULL) =========或========= while( s2[j] != 0 ) =======(答案3)======= s1[i]=s2[j]; =======(答案4)======= s1[i]='\\0'; =========或========= s1[i]=NULL; =========或========= s1[i]=0; 三、程序设计 共2题 (共计60分) 第1题 (30.0分) 题号:85 难度:易 第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:用函数实现字符串的复制, 不允许用strcpy()函数。 ------------------------------------------------*/ #include \"stdio.h\" void copy(char str1[],char str2[]) { /**********Program**********/ /********** End **********/ } main() { void copy(); char c1[40],c2[40]; gets(c1); copy(c1,c2); puts(c2); yzj(); getch(); } yzj() { FILE *IN,*OUT; int n; char i[100]; char o[100]; IN=fopen(\"in.dat\ if(IN==NULL) { printf(\"Read File Error\"); } OUT=fopen(\"out.dat\ if(OUT==NULL) { printf(\"Write File Error\"); } fscanf(IN,\"%s\ copy(i,o); fprintf(OUT,\"%s\\n\ fclose(IN); fclose(OUT); } 答案:---------------------- int i; for(i=0;str1[i]!='\\0';i++) str2[i]=str1[i]; str2[i]='\\0'; ---------------------- 第2题 (30.0分) 题号:128 难度:易 第1章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:编写函数fun求一个字符串的长度,在main函数中 输入字符串,并输出其长度。 ------------------------------------------------*/ #include \"stdio.h\" int fun(char *p1) { /**********Program**********/ /********** End **********/ } main() { char *p,a[20]; int len; p=a; printf(\"please input a string:\\n\"); gets(p); len=fun(p); printf(\"The string's length is:%d\\n\ yzj(); } yzj() { FILE *IN,*OUT; char *pIN,sIN[20]; int iOUT,i; pIN=sIN; IN=fopen(\"3.in\ if(IN==NULL) { printf(\"Please Verify The Currernt Dir..It May Be Changed\"); } OUT=fopen(\"3.out\ if(OUT==NULL) { printf(\"Please Verify The Current Dir.. It May Be Changed\"); } for(i=0;i<10;i++) { fscanf(IN,\"%s\ iOUT=fun(pIN); fprintf(OUT,\"%d\\n\ } fclose(IN); fclose(OUT); } 答案:---------------------- int i; i=0; while(p1[i]) i++; return i; ---------------------- 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务