当前位置:首页 > C语言练习材料(2014)及选择题解答
C语言补充材料(2014.6)
则枚举常量c和e的值分别是( )。 A)11和16 B)14和16 C)11和13 D)2和4
94. 若已定义:
enum colors {red,green=2,blue, black}x,a[3]; 以下语句()。
/ * 语句 1 */ a[1]=black ; / * 语句 2 */ red = 1 ; / * 语句 3 */ x= green ;
A) 语句1 与语句2正确 ,语句3错误 B) 语句1与语句3正确,语句2错误
C) 语句2 与语句3正确,语句1错误 D) 语句1正确,语句2和语句3错误
七、文件
95. 以下程序的运行结果是( )。 #include
int a=3, b=5, x=0, y=0, z; fp=fopen(“test.txt”,”w”); fprintf(fp, “%d\\n%d”, a, b); fclose(fp);
fp=fopen(“test.txt”,”r”);
fscanf(fp, “%d%d”, &x, &y); z=x+y;
printf(“%d\\n”, z); fclose(fp); }
A)8 B)3 C)5 D)0
96. 若文本文件data.txt的内容为hotel, 以下程序段的进行结果是( )。 FILE *fp; char str[10];
fp=fopen(“data.txt”, “r”); fgets(str, 4, fp); printf(“%s”, str);
A)Hote B)Hotel C)Ho D)Hot
97. fscanf( )函数的正确调用形式是( )。 A) fscanf( 文件指针,输入表列,格式字符串) B) fscanf(文件指针,格式字符串,输入表
列)
C) fscanf(格式字符串,文件指针,输入表
列)
D) fscanf(格式字符串,输入表列,文件指
针)
98. 以下程序后,文件test.txt的内容是( )。 #include
fp=fopen(“test.txt”,”w”); fprintf(fp, “%s”,”How ”); fclose(fp);
fp=fopen(“test.txt”,”a”); fprintf(fp, “%s”,”are you!”); fclose(fp); }
A) How are you! B) How
C) are you! D) you!
99. 对已打开的文件操作完成后,应使用( )将文件关闭。
A) close()函数 B) closefile( )函数
C) openfile ( ) 函数 D) fclose( )函数
9
改错题
1) 修改程序cmody591.c,按每行10个数的形式输出[10,99]区间内满足“个位数与十位数之积大于它们之和”的所有整数。例如:
整数38, 个位数与十位数之积24(3×8)大于它们之和11(3+8)
#include
for(i=10;i<100;i++) { /**/ k=0; /**/ s=0; j=i; while(j)
{ k*=j; s+=j;
/**/ j=j /**/; }
if(/**/ k
{ if(n==0) printf(\ n++;
printf(\ } }
printf(\ getch(); }
2) 修改程序cmody592.c,使函数pnt(int a[M][M], int n), 根据参数n(1 当n=6时, 输出: 11 13 15 17 19 21 22 23 24 25 26 27 33 35 37 39 41 43 44 45 46 47 48 49 55 57 59 61 63 65 66 67 68 69 70 71 当n=3时, 输出: 11 13 15 22 23 24 33 35 37 #include void pnt(int a[M][M],int n) { int /**/i,j /**/; for(i=0;i for(j=0;j a[i][j]=s+2*j; else a[i][j]=/**/ s+j+1 /**/; } } printf(\ for(i=0;i printf(\ printf(\ } } void main() { int a[M][M]; int n; do { printf(\input n(1 scanf(\ }while(n<=1 || n>=10); pnt(/**/ a[ ]/**/,n); getch(); } 3) 修改程序cmody601.c,使字符串中所有大写的英文字母转换为小写英文字母(其它字符不变)。例如: 原字符串:g@O355o6D LuCk! 被转换成:g@o35506d luck! #include char src[80],tag[80]; int i; 10 C语言补充材料(2014.6) /**/ i='0'; /**/ printf(\ gets(src); strcpy(tag,src); while(/**/ tag[i]=='\\0' /**/) { if(tag[i]>='A' && tag[i]<='Z') /**/ tag[i]-=32; /**/ i++; } printf(\source string: %s\\n\ printf(\ getch(); } (4)修改程序cmody602.c,使函数p_swap( )利用指针变量实现函数main( )中两个变量值的交换。例如: 输入:23, 78 显示:Original a=23, b=78 Now a=78, b=23 #include void p_swap(int *x,int *y) { int /**/ t /**/; temp=*y; *y=/**/ x /**/; *x=temp; } void main() { int a,b; printf(\ scanf(\ printf(\a=%d, b=%d\\n\ p_swap(&a,/**/ b /**/); printf(\ getch(); } (5)修改程序cmody611.c,已知圆柱体底面圆的半径r,从键盘输入圆柱体的高h, 若h>=0,则根据以下公式求圆柱体 的体积, 否则提示出错信息。 result=PI*r2*h , 其中, PI?3.14 #include #define /**/ PI=3.14 /**/ void main() { float r=5.0,h,result; printf(\ scanf(\ if(/**/ h<0 /**/) { result = PI*r*r*h; printf(\result is:%.2f\\n\ } else printf(\ getch(); } 6)改错题cmody612.c,使函数arrayclass(int a[ ])完成如下功能: (1)遍历数组a,找出其中做大值max和最小值min; (2)再次遍历数组a 进行元素归类, 若元素与max差值的绝对值小于其与min差值的绝对值,则将该元素存入数组max_class中,否则存入数组min_class中; (3)变量n_max和n_min分别表示存入数组max_class和min_class的元素个数。 #include void arrayclass(int a[ ]) { int max_class[N], min_class[N]; int i, max, min, n_max, n_min; /**/ n_max=0 /**/; max=min=a[0]; 11 for(i=1;i { if(max if(min>a[i]) min=a[i]; } for(i=0;i { max_class[n_max]=a[i]; n_max++; } else { min_class[n_min]=a[i] ; /**/ n_min-- /**/; } } printf(\ printf(\ for(i=0;i printf(\ printf(\ printf(\ for(i=0;/**/ i<=n_min /**/; i++) printf(\} void main() { int a[N] = {13,24,0,-12,18,29,-8,32,7, 20,3,10,16,-3,26}; arrayclass(a); getch(); } 7) 修改程序cmody621.c, 实现求满足 ?ni?3000 的最小正整数n。 i?1#include int i=1,sum=0; while(/**/ sum>3000 /**/) { /**/ sum=i; /**/ i++; } printf(\i /**/,sum); getch(); } 8) 修改程序cmody622.c, 使函数fun(char *p, char *q)完成如下功能: 将p所指字符串中的字符逐个复制到q所指字符串中,在每4个字符之后插入1个空格(注:若遇空格字符则重新累计字符个数)。例如, 输入:ABC DEFGHI JKL MNOPQRS 输出:ABC DEFG HI JKL MNOP QRS #include void fun(char *p, char *q ) { int n, i; /**/ i=1; /**/ while(*p) { n=1; while(n<=4 && *p) { q[i++]=*p; if(*p==' ') /**/ n=1; /**/ p++; n++; } if(*p) { if(*p!=' ') q[i++]=' '; else { q[i++]=*p; p++; } } } /**/ q[i]='0' /**/; } void main() { char str_a[80],str_b[80]; printf(\ gets(str_a); 12
共分享92篇相关文档