c语言程序设计练习b

上传人:仙*** 文档编号:146619670 上传时间:2022-08-31 格式:DOC 页数:33 大小:115KB
收藏 版权申诉 举报 下载
c语言程序设计练习b_第1页
第1页 / 共33页
c语言程序设计练习b_第2页
第2页 / 共33页
c语言程序设计练习b_第3页
第3页 / 共33页
资源描述:

《c语言程序设计练习b》由会员分享,可在线阅读,更多相关《c语言程序设计练习b(33页珍藏版)》请在装配图网上搜索。

1、1. 已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是BA、scanf(%d %d %d,&i,&j,&k);B、scanf(%d,%d,%d,&i,&j,&k);C、scanf(%2d%2d%2d,&i,&j,&k);D、scanf(i=%d,j=%d,k=%d,&i,&j,&k);2. 判断两个字符串是否相等,正确的表达方式是DA、while(s1=s2)B、while(s1= =s2)C、while(strcmp(s1,s2)=0)D、while(strcmp(s1,s2)= =0)3. 以下程序的执行结果是_B

2、_. main() int w = 1, x = 2, y = 3, z = 4; w =( w x ) ? x : w; w =( w y ) ? y : w; w =( w z ) ? z : w; printf( %d , w );A、2B、4C、3D、14. 对以下说明语句 int a10=6,7,8,9,10; 的正确理解是(D)。A、将5个初值依次赋给a1至a5B、将5个初值依次赋给a6至a10C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a0至a45. 下列程序的输出结果是(A)。 main() int x=1,y=0,a=0,b=0; switch(

3、x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;b+;break; printf(a=%d,b=%dn,a,b); A、a=2,b=1B、a=2,b=2C、a=1,b=0D、a=1,b=16. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(D)。A、3.500000B、0.000000C、2.750000D、2.5000007. 若给定条件表达式(M)?(a+):(a-),则其中表达式M(C)。A、和(

4、M!=1)等价B、和(M=1)等价C、和(M!=0)等价D、和(M=0)等价8. 以下程序的输出结果是Dmain() int i, x33 = 1, 2, 3, 4, 5, 6, 7, 8, 9;for(i = 0; i =y=z)B、(x=y) AND (y=z)C、(x=y)&(y=z)D、(x=z)&(y=z)14下列程序的输出结果为(D)。main()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);A、28.000000B、27.500000C、28.500000D、27.00000015. 假设所有变量均为

5、整型,则表达式(a=2,b=5,b+,a+b)的值是(D)。A、7B、2C、6D、816. 若有说明 int a34;则对a数组元素的正确引用是(B)。A、a(2)(1)B、a1+10C、a24D、a1,317. C语言中运算对象必须是整型的运算符是(A)。A、%B、/C、=D、=18. 以下for循环的执行次数是 for(x=0,y=0;(y=123)&(x4);x+);(A)。A、4次B、是无限循环C、3次D、循环次数不定19. C语言中用于结构化程序设计的三种基本结构是(B)。A、for、while、do-whileB、顺序结构、选择结构、循环结构C、if、switch、breakD、i

6、f、for、continue20. 以下程序运行后的输出结果是C#include main() FILE *fp; int i, k = 0, n = 0; fp = fopen(“d1.dat”, “w”); for(i = 1; i 4; i+) fprintf(fp, “%d”, i); fclose(fp); fp = fopen(“d1.dat”, “r”); fscanf(fp, “%d%d”, &k, &n); printf(“%d%dn”, k, n); fclose(fp); A、1 23 B、0 0C、123 0D、1 2 21. 设a和b均为double型变量,且a=5.

7、5、b=2.5,则表达式(int)a+b/b的值是AA、6.000000B、5.500000C、6D、6.50000022. char a1=abc,a280=1234;将a1串连接到a2串后面的语句是(B)。A、strcat(a1,a2);B、strcat(a2,a1);C、strcpy(a2,a1);D、strcpy(a1,a2);23. 有以下程序(提示:程序中fseek(fp, -2L * sizeof(int), SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节)#include main() FILE *fp; int i, a4 = 1,

8、2, 3, 4, b; fp = fopen(“data.dat”, “wb”); for(i = 0; i 4; i+) fwrite(&ai, sizeof(int), 1, fp); fclose(fp); fp = fopen(“data.dat”, “rb”); fseek(fp, -2L * sizeof(int), SEEK_END); fread(&b, sizeof(int), 1, fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); 执行后输出结果是CA、3B、4C、1D、224. 若调用fputc函数输出字符成功,则其返回值是

9、(D)。A、1B、EOFC、0D、输出的字符25. 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(A)。A、-264B、144C、552D、26426. while(fabs(t)1e-5)if(!s/10)break;循环结束的条件是(C)。A、fabs(t)1e-5&!s/10B、fabs(t)=1e-5&t-10&s10D、s/10=027. 以下程序的输出结果是Dmain() char *alpha6 = “ABCD”,”EFGH”,”iJKL”,”MNOP”,”QRST”,”UVWX”;char *p;int i;p = alpha;for(i = 0; i

10、4; i+) printf(”%s”, pi);printf(“n”); A、ABCDB、AEiMC、ABCDEFGHiJKL D、ABCDEFGHiJKLMNOP28. 以下程序的输出结果是Cmain() char s = “ABCD”, *p;for(p = s; p =A & xb)=c 的值为真。T7. 有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是 *(P+8).T8. 变量根据其作用域的范围可以分作局部变量和全局变量.T9. C语言规定,必须用main作为主函数名。T10. char c=Very Good; 是一个合法的为字

11、符串数组赋值的语句。T1. /*-【程序设计】-功能:从字符串中删除指定的字符。同一字母的大、小写 按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc+ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc+,如果输入的字符在字符串中不存在,则字 符串照原样输出。 -*/#include stdio.h int fun(char s,int c) /*Begin*/ char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q; *s=0; /* End */ main() static char str=turbo

12、candborlandc+; char ch; printf(原始字符串:%sn, str); printf(输入一个字符:); scanf(%c,&ch); fun(str,ch); printf(str=%sn,str); TestFunc(); TestFunc() FILE *IN,*OUT; char i200; char o200; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); fscanf(I

13、N,%s,i); fun(i,n); fprintf(OUT,%s,i); fclose(IN); fclose(OUT);/*-【程序设计】-功能:编写函数fun求s=1k+2k +3k + .+Nk的值, (1的K次方到N的K次方的累加和)。-*/#define K 4#define N 5#include void bky(); long fun(int n,int k) /*Begin*/ long power,sum=0; int i,j; for(i=1;i=n;i+) power=i; for(j=1;jk;j+) power *= i; sum += power; return

14、 sum; /* End */ main() long int sum; printf(Sum of %d powers of integers from 1 to %d = ,K,N); sum=fun(N,K); printf(%ldn,sum); bky();void bky() FILE *IN,*OUT; int n; int i2; long o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error);

15、for(n=0;n2;n+) fscanf(IN,%d,&in); o=fun(i0,i1); fprintf(OUT,%ldn,o); fclose(IN); fclose(OUT);/*- 【程序改错】-功能:判断m是否为素数,若是返回1,否则返回0。-*/#include /*ERROR*/void fun( int n) int i,k=1; if(m=1) k=0; /*ERROR*/ for(i=1;im;i+) /*ERROR*/ if(m%i=0) k=0; /*ERROR*/ return m;void main() int m,k=0; for(m=1;m100;m+) i

16、f(fun(m)=1) printf(%4d,m);k+; if(k%5=0) printf(n); 【改错1】错误【学生答案】void fun( int n)【参考答案】int fun( int m)fun( int m)=【改错2】错误【学生答案】for(i=0;im;i+)【参考答案】for(i=2;ii;i+)for(i=2;i=i;i+)=【改错3】正确【学生答案】if(m%i=0) k=0;【参考答案】if(m%i=0) k=0;=【改错4】错误【学生答案】return m;【参考答案】return k;=/*- 【程序改错】-功能:在字符串str中找出ASCII码值最小的字符,将

17、其放在第一 个位置上,并将该字符前的原字符向后顺序移动。例如:调用fun函数之前给字符串输入:eBCDAFGH,调用后字符串 中的内容为:AeBCDFGH。-*/#include #include fun(char *p) char min,*q=p;int i=0; min=pi; while(pi!=0) if(minpi) min=pi; /*ERROR*/ p=p+i; i+; /*ERROR*/ while(qp) /*ERROR*/ *q=(q-1); q-; p0=min;main() char str80; printf(Enter a string:);gets(str);

18、printf(nThe original string:);puts(str); fun(str); printf(nThe string after moving:);puts(str);【改错1】错误【学生答案】*p=*(p+i);【参考答案】q=p+i;=【改错2】错误【学生答案】while(*qp)=【改错3】正确【学生答案】*q=*(q-1);【参考答案】*q=*(q-1);=/*-【程序填空】-功能:将一个字符串中的前N个字符复制到一个字符数组中去, 不许使用strcpy函数。-*/#include main ( ) char str180,str280; int i,n; /*F

19、ILL*/ gets(_); scanf(%d,&n); /*FILL*/ for (i=0; _ ;i+) /*FILL*/ _ /*FILL*/ _ printf(%sn,str2);【空1】错误【学生答案】gets(n);【参考答案】str1=【空2】正确【学生答案】for (i=0; in ;i+)【参考答案】in=【空3】正确【学生答案】str2i=str1i;【参考答案】str2i=str1i=【空4】错误【学生答案】printf(%sn,str2);【参考答案】str2n=0str2i=0str2n=0str2i=0*(str2+n)=0*(str2+i)=0*(str+n)=0

20、*(str2+i)=0=/*-【程序填空】-功能: 统计子字符串substr在字符串str中出现的次数。例如:若字符串为aaas lkaaas,子字符串为as,则应输出2。 若字符串为asasasa,子字符串为asa,则应输出3-*/#include fun (char *substr,char *str) int i,j,k,num=0; for(i=0; stri; i+) for(j=i,k=0;substrk=strj;k+,j+) /*FILL*/ if(substr_=0) num+; /*FILL*/ _; return num;main() char str80,substr80; printf(Input a string:) ; gets(str); printf(Input a substring:) ; gets(substr); /*FILL*/ printf(%dn,_); 【空1】错误【学生答案】if(substrk=0) 【参考答案】k+1=【空2】错误【学生答案】printf(s,num); 【参考答案】break=【空3】错误【学生答案】printf(%dn,); 【参考答案】fun(substr,str)=

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!