ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:130KB ,
资源ID:5972327      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5972327.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c语言复习题解答2.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c语言复习题解答2.doc

1、C语言程序设计练习题 题型 单选题 程序填空 程序运行结果 程序改错 编程 总分 分值 2*20=40 2*10=20 2*5=10 3*5=15 6+9=15 100 考生注意:所有答案均要填写在答题卡上否则不得分数! 一、单项选择题 1、下列转义字符中,错误的是(C)。 转义字符可以用八进制表示 \ddd, 0<=d<8 A.′\n′  B.′\\′ C.′\108′  D.′\xbb′ 2、以下选项中正确的实型常数是___D____。小于1的实数小数点前的0可以省略 A、12.f   B、 3.1415

2、后有空) C、1,000   D、 .876 3、在C语言中,整型常量的书写形式不包括(A)。 A.二进制  B.八进制 C.十进制  D.十六进制 4、在C语言程序中,主函数的摆放位置(D )。 A.必须置于所有函数之首  B.必须置于所有函数之尾 C.不得置于所有函数之尾  D.任意 5、 以下选项中不合法的用户标识符是____A___。标识符只能是字母、下划线、数字 A、 abc.c   B、 file C、 Main   D、 PRINTF 6、 C 语言中运算对象必须是整型的运算符是____A____。

3、 A、 %   B、 / C、 !   D、 * 7、 以下叙述中正确的是____A_____。 A、 a 是实型变量,C 允许进行赋值 a = 10,但不可以这样说:实型变量中允许存放整型值 B、 在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式 C、 执行表达式 a = b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为0 D、 已有 a = 3, b = 5,当执行表达式 a = b, b = a 之后,使 a 中的值为5,b 中的值为3 8、以下叙述中正确的是____A_

4、 A、C 程序中各函数之间既允许直接递归调用,也允许间接递归调用 B、C 程序中各函数之间不允许直接递归调用,也不允许间接递归调用 C、C 程序中各函数之间允许直接递归调用,不允许间接递归调用 D、C 程序中各函数之间不允许直接递归调用,允许间接递归调用 9、 若 a、b、c、d 都是 int 型变量且初值为0,以下选项中不正确的赋值语句是____C______。 A、 a = b = c = 100;   B、 d++; C、 c + b=a+d;   D、 d = (c = 22) - (b++); 10、设有

5、如下定义:char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( C    )。 A aa数组成元素的值分别是“abcd”和ABCD“ B aa是指针变量,它指向含有两个数组元素的字符型一维数组 C aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D aa数组的两个元素中各自存放了字符‘a’和‘A’的地址 11、 若变量已正确定义为 int 型,要给 a、b、c 输入数据,正确的输入语句是___D_______。 A、 read(a, b, c);    B、 scanf("%d%d%d", a,

6、b, c); C、 scanf("%D%D%D", &a, &b, &c);    D、 scanf("%d%d%d", &a, &b, &c); 12、 若有以下程序段: int c1 = 1, c2 = 2, c3; c3 = c1 / c2; printf("%d\n", c3); 执行后的输出结果是____A______。 A、 0   B、 1/2 C、 0.5   D、 1 13、 为表示关系:x≥y≥z,应使用的 C 语言表达式是_____A_____。 A、 (x >= y) && (y >= z)   B、

7、x >= y) AND (y >= z) C、 (x >= y >= z)   D、 (x >= y) & (y >= z) 14、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句   for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); 的输出结果是(  C   ) A、1  5  9   B、 1  4  7    C、3  5  7    D、 3  6  9 15、 设有定义:char str[] = "ABCD", *p = st

8、r; 则语句 printf("%d\n", *(p + 4)); 的输出结果是____B______。 A、 68   B、 0 (“ABCD”后面自动加上一个字符’\0’,ASCII值为0) C、 字符 D 的地址   D、 不确定的值 16.字符数组初始化错误的是(D )。 A. static char word [ ]=″Turbo″; B. static char word [ ]={″Turbo″}; C. static char word [ ]={′T′,′u′,′r′,′b′,′o′,′\0′}; D.

9、 static char word [ ]=′Turbo\0′; 17、 有以下定义: struct person { char name[9]; int age;}; struct person class[10] = {"John", 17, "Paul", 19, "Mary", 18, "Adam", 16}; 则下面能输出字母 M 的语句是____D______。 A、 printf("%c\n", class[3].name);   B、 printf("%c\n", class[3].name[1]); C、 printf("%c\n", class[2].na

10、me[1]);   D、 printf("%c\n", class[2].name[0]); 18、 C 语言中,字符(char)型数据在微机内存中的存储形式是____D______。 A、 反码   B、 补码 C、 DBCDIC 码   D、 ASCII 码 19、 C 语言中,下列不合法的字符常量是___D_____。 A、 '\xff'   B、 '\65' C、 '&'   D、 '\028' 20、 已定义了以下函数 fff(float x) { printf("

11、d\n", x * x);} 该函数的类型是___C_____。 函数没有声明类型为int型 A、 与参数 x 的类型相同   B、 void 类型 C、 int 类型   D、 无法确定 21、有以下程序: #include #define N 2 定义N=2 #define M N + 1 M=2+1=3 #d

12、efine NUM (M + 1) * M /2 NUM=(3+1)*3/2=6 void main() 用#define也可定义函数 { int i; for (i = 1; i < NUM; i++); printf("%d\n", i);} 程序运行后的结果是____B______。 A、 5   B、 6 C、 8   D、 9 22、 若有定义:int x, *pb; 则正确的赋值表达式是

13、A_____。 A、 pb = &x   B、 pb = x C、 *pb = &x   D、 *pb = *x 23、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( C    )。 A、p+1    B、 a+1    C、 a++     D、 ++p a是固定的,不能做a++运算 24、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B    )。   A、P+i*2   B、P+(i-1)*2 

14、  C、P+(i-1)  D、P+i 25、 若有以下程序: void main() { int k = 2, m = 4, n =6, *pk = &k, *pm = &m, *p; *(p = &n) = *pk * (*pm); printf("%d\n", n);} 程序的输出结果是_____C_____。 A、 4   B、 6 C、 8   D、 10 27、 若指针 p 已正确定义并指向如下图所示存储单元: a[0] a[1] a[2] a[3] a[4] 10 2

15、0 30 40 50 p↑ 则表达式 *++p 的值是_____B_____。 A、 20   B、 30 C、 21   D、31 27、 语句 printf("%d\n", strlen("ATS\n012\1\\")); 的输出结果是__C____。\n,\1,\\均为转义字符算一个 A、 11   B、 10 C、 9   D、 8 28、 若已定义: int a[] = {0, 1, 2, 3, 4, 5, 6, 7,

16、8, 9}, *p = a, i; 其中0≤i≤9,则对 a 数组元素的引用不正确的是 ( D) *是取地址的值的运算 A、 a[p - a]   B、 *(&a[i]) C、 p[i]   D、 *(*(a + i)) 29、设FILE *fp; char ch; , 则从fp所指向文件中读入一个字符,正确的语句是(B )。 A.fgetc(ch, fp);  B.ch=fgetc(fp); C.getchar(ch);  D.fgetc(fp,ch); 30、 有以下程序:

17、 通过#define预定义函数 宏定义 #include FUDGF(y)=2.84+y 返回整型数 7 #define FUDGF(y) 2.84 + y PR(a)输出a a=12 #define PR(a) printf("%d", (int)(a)) PRINT1(a) 调用PR(a) 输出换行符 #define PRINT1(a) PR(a); put

18、char('\n') 本题属于C语言预处理的内容,如要详细 void main() 了解,请学习预处理部分 { int x = 2; PRINT1(FUDGF(5) * x);} 程序运行后的结果是___B_____。 A、 11   B、 12 C、 13   D、 15 二、程序填空 1、从键盘上输入10个数,求其平均值。   main()   {int i;   float f,sum;   for(

19、i=1,sum=0.0;i<11;i++)   { ___________【1】________________; scanf(“%f”,&f)    ____________【2】_________________; sum=sum+f   }   printf(“average=%f\n”,sum/10);   } 2、输入一行字符,统计其中的英文字符、数字字符、空格及其它字符的个数。 #include #include #define ARR_SIZE 80 main() { char str[ARR_

20、SIZE]; int len, i, letter=0, digit=0, space=0, others=0; gets(str); for (i=0; 【1】 ; i++) str[i]!=’\0’ { if ( 【2】 ) (str[i]>=65&&str[i]<=80)|| (str[i]>=97&&str[i]<=122) letter ++; else if ( 【3】

21、 ) (str[i]>=48&&str[i]<=57) digit ++; else if ( 【4】 ) str[i]=’ ‘; space ++; else others ++; } printf("English character: %d\n", letter); printf("digit character: %d\n", digit); printf("spa

22、ce: %d\n", space); printf("other character: %d\n", others); } 3、将从键盘输入的字符串逆序显示。 #include main() {int n; char str[80], *p; printf(″Input a string:″); gets(str);/*输入字符串*/ n=strlen(___【1】_____); /* 第一空 */ str p=str+___【2】_____-1; /* 第二空 */ n while (

23、p>=str) {printf(″%c″, *p); ____【3】____; /* 第三空 */ p-- } printf(″/n″); } 4、不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符串dstStr的尾部。 #include #include main() { void MyStrcat(char dstStr[], char srcStr[]); char s[80], t[80]; printf("Please e

24、nter source string: "); gets(s); printf("Please enter destination string: "); gets(t); MyStrcat(s,t); printf("The concatenate string is: "); puts(s); } void MyStrcat(char dstStr[], char srcStr[]) { int i = 0, j; while (dstStr[i] != '\0') { 【1】 ;

25、 i++ /*起到目标串尾 */ } for (j=0; 【2】 ; j++, i++) srcStr[j]!=’\0’ { 【3】 ; dstStr[i]=srcStr[j] } 【4】 = '\0'; dstStr[i] } 5、给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。 main() {

26、 int i,j,row=0,colum=0,max; static int a[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}}; 【1】 ; max=a[0][0] for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) { 【2】 ; max=a[i][j] row=i; coum=j;

27、 } printf(“max=%d,row=%d,colum=%d\n”,max,row,colum); } 三、读程序,写出运行结果 1、int x=6,y=7;   printf(“%d,”,x++);printf(“%d\n”,++y);   程序的输出结果是__6,8___. 2、#include ”stdio.h” func(int b[]) { int j; for(j=0;j<4;j++) b[j]=j; } main() { int a[4],k; func(a); for(k=0;k<4;k++) pr

28、intf(“%d\n”,a[k]); } 上述程序运行的结果: 0 1 2 3 3、float f=3.1415927;   printf(“%f,%5.4f,%3.3f”,f,f,f);   则程序的输出结果是__3.141593,3.1416,3.142___. 4、#include ”stdio.h” void fun() { static int a=5; a++; printf(“a=%d\n”,a); } main() { int m; for(m=0;m<=1;m++) fun

29、); } 上述程序运行的结果: a=6 a=7 5、#include "stdio.h" union mix { char c; float f;int i; }; main(){ union mix x,*p=&x; *(float *)p=3.110; printf("%f",x.f); *(int *)p=50; printf("%d",x.i); } 上述程序运行的结果: 3.11000050 /* 输出没有分隔符 */ 6、#include "stdio.h" void te

30、st(int *x,int*y); void main() { int a=10,b=20; printf(“a=%d,b=%d\n”,a,b); test(&a,&b); printf(“a=%d,b=%d\n”,a,b); } void test(int *x,int*y){ int t; t=*x;*x=*y;*y=t; } 上述程序运行的结果: a=10,b=20 a=20,b=10 7、#include main() { int i

31、 j, m; int a[2][5] = {1,20,32,14,5,62,87,38,9,10}; m = a[0][0]; for (i=0; i<2; i++) for (j=0; j<5; j++) if( m

32、ay; }; void func(struct date *p) { p->year = 2000; p->month = 5; p->day = 22; } main() { struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(“%d,%d,%d\n”,d.year, d.month, d.day); func(&d); printf(“%d,%d,%d\n”,d.year, d.month, d.day); } 上述程

33、序运行的结果: 1999,4,23 2000,5,22 9、#include void fun1(int x) { x=20; } void fun2(int b[4]) { int j; for(j=0; j<4; j++) b[j]=j; } main() { int x = 10; int a[4] = {1,2,3,4}, k; fun1(x); printf("x = %d\n", x); fun2(a); for

34、k=0; k<4; k++) printf("%d\n", a[k]); } 上述程序运行的结果: x=10 0 1 2 3 10、main()   {int a,b;   for (a=1,b=1;a<=100;a++)   { if(b>=20)  break;   if(b%3==1)   {b+=3;continue;}   b-=5;}  }   程序的输出结果a的

35、值为__7____. 11、main() { int i=10; switch(i){ case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } printf(“%d”,i); } 上述程序运行的结果: 13 12、a=3;   a+=(a<1)?a:1; printf(“%d”,a);   结果是__4____. 13、 #include int s(); int x,y; main() { int n; x=1;y

36、2 n=s(); printf(“x=%d,y=%d,n=%d\n”,x,y,n); } int s(); { int z; x=3;y=4; z=x+y; return(z); } 上述程序运行的结果: x=3,y=4,n=7 14、#include "stdio.h"    #include "string.h"   main()   { char *s1="engraft",*s2="engrave"; while(*s1++==*s2++);    printf("%d",strcmp

37、s1,s2)); } 上述程序运行的结果: 大于0的整数 /*当s1,s2指向a时,条件仍成立,继续指向f和v,条件不成立,但此时s1,s2再次指向下一位 t>e 结果得到大于0的整数 15、main( )   { int a[5]={2,4,6,8,10},*P,* *k;   p=a;  k=&p;   printf(“%d,”,*(p++));   printf(“%d\n”,* *k);   程序的输出结果是__2,4____. 四、程序改错题 在下面给出的5个程序中,共有10处错误,请找出其中的错误,并改正之。注意不得增行或删行,也不得更改程序的结

38、构;多找、少找、找错、改错均不得分! 1、程序的功能是:程序中函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 #include void fun(char *s, int a, double f) { file *fp; FILE *fp; char ch; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f\n", s, a, f); fclose(fp); fp

39、 fopen("file1.txt", "r"); printf("\nThe result :\n\n"); ch = fgetc(fp); while (!feof(fp)) { putchar(fp); ch = fgetc(fp); } putchar(ch);ch=fgetc(fp); putchar('\n'); fclose(fp); } main() { char a[10]="Hello!"; int b=12345; double c= 98.76; fun(&a,&b,&c);

40、 fun(a,b,c); } 2、 下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序: #include #include #include int prime(int n) { int yes, i; if(n<=1) {return 1;} yes=1; for(i=2; i<=sqrt(n); i++) if(n%i==0){ yes=0; continue;} ***① {yes=0;break;} ret

41、urn 1; ***② return yes; } main() { int sum=0, i; clrscr(); for(i=2;i<=500; i++) if(prime(i)) sum+=i; printf("%d\n", sum); } 3、序是求[1,450]之间同时满足除3余2和除5余3条件的数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: #include #include #include

42、 main() { int count; int i; count=0; for (i=1;i<=450;i++) { if (fmod(i,3)==2 && fmod(i,5)==3) count+=i; ***① count++; } clrscr(); printf("%ld\n",count); ***② printf(“%d\n”,count); } 4、24有8个因子,而24正好被8整除。下面程序求[

43、50,250]之间有多少个整数能被其因子的个数整除,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: #include #include #include main() { int a,b,c,n,count=0; for (a=50; a<=250; a++) { b=0; for (c=1;c<=a;c++) if (a%c ==0 ) b+=c; ***① b+

44、 if (a%b==0) { count=count+a; ***② count++; } } printf("\n count = %d",count); } 5、程序的功能是:输入一个整数k(2≤k≤10000),打印出它的所有质因子(即所有为素数的因子)。 #include #include IsPrime(int n); { int i, m; m = 1; for (i=2; i

45、if !(n%i) if(n%i==0) { m = 0; break; } return(m); } main() { int j, k; printf("\nplease enter an integer number between 2 and 10000:"); scanf("%d", &k); printf("\n\nThe prime factor(s) of %d is(are):", k); for (j=2; j

46、 printf(" %4d,", j); printf("\n");} 五、程序设计题 1、求1!+3!+5!+7!+…+19!的和。 long tm=1,sum=0; int i,j; for(i=1;i<=19;i+=2) {tm=1; for(j=1;j<=i;j++) tm=tm*j; sum=sum+tm;} printf(“totle=%d\n”,sum); 2、从键盘输入某学生的成绩(0≤score≤100)后,先输出该同学的成绩,再按下列条件 输出 int score; printf(“please inpu

47、t the score\n”); do scanf(“%d”,&score); while(score<0||score>100); if(score>=80)printf(“%d Good\n”,score); else if(score>=60)printf(“%d Pass\n”,score); else printf(“%d No pass\n”,score); 3、试编程序,找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。 int i,k; fo

48、r(i=1;i<=99;i++) if(i<10)k=i*i%10; else k=i*i%100; if(i==k)printf(“%4d”,i); 1 5 6 25 76 4、用选择法或者冒泡法对10个整数排序(从大到小)。 (选择算法) int s[10]={4,8,7,2,5,9,0,1,3,6}; int i,j,k,t; for(i=0;i<9;i++) {k=i; for(j=i+1;j<10;j++) if(s[j]>s[k])k=j; t=s[k];s[k]=sk[i];s[i]=t;} (冒泡算法) int s[10]={4,8,7,2,5,9,0,1,3,6}; int i,j,t; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(s[j]

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服