《c复习(基础题)》由会员分享,可在线阅读,更多相关《c复习(基础题)(38页珍藏版)》请在金锄头文库上搜索。
1、C语言复习3,考试说明 部分知识训练复习 部分算法训练复习,考试资料说明,ASCII表.doc 常用库函数表.doc 语句格式.doc 运算符表.doc 使用考试系统,基础考复习,选择题-基础题分析.docx,选择题复习,1. 在一个C 语言源程序中,main()函数的位置_。 A. 必须在最后面 B. 可以在任意位置 C. 必须在其它函数之前 D. 必须在最前面,2. 设有变量定义char str80; 下列_语句能将字符串“usst 2012“从键盘输入到数组变量str中。 A. printf(“%s“,str); B. scanf(“%s“,str); C. gets(str); D.
2、puts(str);,4. 设有变量定义:int a =5, 6, 4,8, 7, c, i; 当执行完语句: for(i=c=0; i5; i+) if(ai%2 = =0) continue; c+; 之后,c的值是_。 A. 1 B. 2 C. 3 D. 4,5. 在C语言中,将文件内部的位置指针重新指向一个流(数据流/文件)的开头的库函数是_。 A. rewind B. fwrite C. fscanf D. fread,6. 设有变量定义char str80; 下列_语句能将字符串“usst 2012“存入到数组变量str中。 A.str=“usst 2012“; B.*str=“u
3、sst 2012“; C. strcpy(“usst 2012“, str); D. strcpy(str, “usst 2012“);,7. 为了判断两个字符串s1和s2是否相等,应当使用_。 A. if (s1=s2 ) B. if ( strcmp( s1,s2) = 0 ) C. if ( strcpy (s1,s2 ) ) D. if (s1 = s2),8.若有函数原型和变量定义语句: void swap( int *p, int *q ); int x, y; 则合法的函数调用语句是:_ 。 A. swap( x, y ); B. swap( *x, *y ); C. swap(
4、 ,算法复习-程序填空,输入一个长度小于40的字符串到数组s,并复制到数组t中,再将s中的字符串逆序连接到t的后面并输出。例如:输入“ABCD“,则字符串t为“ABCDDCBA“。,源程序: #include #include void main() char s80,t80; int i; _1_; printf(“输入字符串:“ ); scanf(“%s“,s); m=strlen(s);,for(i=0; _2_;i+) ti=si; for(i=0;im;i+) tm+i=sm-i-1; tm+i= _3_; printf(“新的字符串:_4_n“,t); getchar(); /*暂
5、停程序,按任意键继续*/ ,1-1【int m】 1-2 【si!=0】 1-3 【0】 1-4 【%s】,程序说明:函数f用于求数组中的最大值或最小值;主程序调用f求数组a中最大值和数组b中最小值,并输出最大值与最小值的差。,#include float f(float x,int n, _1_) float y; int i; y=x0; for(i=1;iflag*y) y = _2_; return y; ,void main() float a6=3,5,9,4,2.5,1,b5=3,-2,6,9,1; float max; _3_; max= f(a,6,1); min= f(b,
6、5,-1); printf(“%.2fn“,_4_); getchar(); /*暂停程序,按任意键继续*/ ,【int flag】 【xi】 【float min】 【max-min】,程序功能:程序运行时输入变量n的值,则输出n的各位数字之和。(如n=1308,输出12,n=-3204输出9)。,#include #include void main() int _2_,s=0; scanf(“%d“, ,在输入的字符串中删除小写字母t,并统计删除的个数。 如输入:gt=5xt-6ty 则输出:删除后的串为:g=5x-6y 删除个数:3,#include #include int f(ch
7、ar s) int i=0, _1_; while(si!=0) if(_2_ = t) strcpy(s+i,s+i+1); c=c+1; else i+; _3_; ,void main() int s; char str80; gets(str); s=f(_4_); printf(“删除后的串为:“) ; puts(str); printf(“删除个数:%d“,s) ; ,如输入:input string1:Computer input string2:is a tools. 则输出:The new string is Computer is a tools. 源程序: #includ
8、e void concat(_(1)_) int i,j; for (i=0; string1i!=0 ;i+) stringi=string1i; for (j=0;string2j!=0;j+) _(2)_=string2j; stringi+j= _(3)_; ,main() char s1100,s2100,s100; printf(“ninput string1:“); gets(s1); printf(“ninput string2:“); gets(s2); concat(s1,s2,s); printf(“The new string is %sn“,s); ,char str
9、ing1,char string2,char string stringi+j 0,求MN二维数组的外围元素值之和。 如输入:请输入二维数组的行数和列数 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 则输出:The total is 147,#include “stdio.h” void main() int i,j,a6060,m,n,sum=0; printf(“请输入二维数组的行数和列数n“); scanf(“%d%d“, ,&aij i=0 | i=m-1 | j=0 | j=n-1 sum+aij,接收键盘上的输入,直到
10、按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填空使程序完整。,main ( ) char cx , front=0 ; while ( (1) !=n) if (cx!= ) putchar(cx) ; if (cx= ) if ( (2) ) putchar( (3) ) front=cx ; ,在字符串中删除所有数字字符,#include #include “string.h“ int f(char s) int i=0; _(1)_; while(si!=0) if(si=0 ,main() int m;char str80; gets(str); _(3
11、)_; printf(“删除数字字符后的字符串n”) ; puts(str); printf(“所删除的数字字符个数:%dn“,m); ,Int Count=0 i+ f(str),将a所指数组中的内容进行逆置,#include void reverse(int a ,int n) int i,t; for(i=0;i _(1)_ ; i+) t=ai; ai=an-1-i;an-1-i=t; main() int b10=10,12,3,8,54,36,7,22,19,100; int i,s=0; _(2)_; for(i=0;i10;i+) printf(“%5d“,_(3)_ ); ,
12、下面的程序是利用插入排序法对输入的N个整数按从小到大排序。插入排序的基本思想:将数组元素分为已排序和未排序部分;从第二个元素起,与前面已排好序的元素进行比较(第一次将a1与a0比较);若当前为i元素,则与前面已排好序的i-1个元素进行比较,若比j元素大,则插在j元素的后面,请填空使程序完整。,#include #define N 10 main() int i, j, temp, aN; for( i=0; i=0; j- ) aj+1=aj; /* 找要插入的位置,同时将大于ai的元素往后移*/ j+; aj= ; for( i=0; iN; i+ ) printf(“%6d“, ai ); ,ai tempaj temp,