电大C语言程序设计期末考试试题A.doc
《电大C语言程序设计期末考试试题A.doc》由会员分享,可在线阅读,更多相关《电大C语言程序设计期末考试试题A.doc(25页珍藏版)》请在咨信网上搜索。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 一、 选择题( 每题1.5分, 共计45分) 1、 以下叙述正确的是【 】 A.C语言程序是由过程和函数组成的 B.C语言函数能够嵌套调用, 例如: fun(fun(x)) C.C语言函数不能够单独编译 D.C语言中除了main函数, 其它函数不可作为单独文件形式存在 2、 以下关于C语言的叙述中正确的是【 】 A.C语言中的注释不能够夹在变量名或关键字的中间 B.C语言中的变量能够在使用之前的任何位置进行定义 C.在C语言算术表示式的书写中, 运算符两侧的运算数类型必须一致 D.C语言的数据常量中夹带空格不影响常量的正常使用 3、 以下C语言用户标识符中, 不合法的是【 】 A._1 B.AaBc C.a_b D.a—b 4、 若有定义: double a=22;int i=0,k=18;, 则不符合C语言规定的赋值语句是【 】 A.a=a++,i++; B.i=( a+k) <=( i+k) ; C.i=a%11; D.i=!a; 5、 有以下程序 #include<stdio.h> main( ) { char a,b,c,d; scanf( ”%c%c”,&a,&b) ; c=getchar( ) ; d=getchar( ) ; printf( ”%c%c%c%c\n”,a,b,c,d) ; } 当执行程序时, 按下列方式输入数据( 从第1列开始, <CR>代表回车, 注意: 回车也是一个字符) 12<CR> 34<CR> 则输出结果是【 】 A.1234 B.12 C.12 3 D.12 34 6、 以下关于C语言数据类型使用的叙述中错误的是【 】 A.若要准确无误差的表示自然数, 应使用整数类型 B.若要保存带有多位小数的数据, 应使用双精度类型 C.若要处理如”人员信息”等含有不同类型的相关数据, 应自定义结构体类型 D.若只处理”真”和”假”两种逻辑值, 应使用逻辑类型 7、 若a是数值类型, 则逻辑表示式( a= =1) ||( a!=1) 的值是【 】 A.1 B.0 C.2 D.不知道a的值, 不能确定 8、 以下选项中与if( a= =1) a=b; else a++; 语句功能不同的switch语句是【 】 A.switch( a) {case:a=b;break; default:a++; } B.switch( a= =1) {case 0:a=b;break; case 1:a++; } C.switch( a) {default:a++;break; case 1:a=b; } D.switch( a= =1) {case 1 : a=b;break; case 0 : a++; } 9、 有如下嵌套的if语句 if ( a<b) if( a<c) k=a; else k=c; else if( b<c) k=b; else k=c; 以下选项中与上述if语句等价的语句是【 】 A.k=( a<b)? a:b; k=( b<c) ? b:c; B.k=( a<b)? ( ( b<c) ? a:b:( ( b>c) ? b:c) ; C.k=( a<b) ? ( ( a<c) ? a:c) :( ( b<e) ? b:c) ; D.k=( a<b) ? a:b; k=( a<c) ? a:c; 10、 有以下程序 #include<stdio.h> main( ) {in i,j,m=1; for( i=1;i<3;i++) {for( j=3;j>O;j--) {if( i*j) >3) break; m=i*j; } } printf( "m=%d\n",m) ; } 程序运行后的输出结果是【 】 A.m=6 B.m=2 C.m=4 D.m=5 11、 有以下程序 #include( stdio.h> main( ) {int a=l;b=2; for( ;a<8;a++) {b+=a;a+=2;} printf( "%d, %d\n", a, b) ; } 程序运行后的输出结果是【 】 A.9, 18 B.8, 11 C.7, 11 D.10, 14 12、 有以下程序, 其中k的初值为八进制数 #include <stdio.h> main( ) {int k=011; printf( "%d\n", k++) ; } 程序运行后的输出结果是【 】 A.12 B.11 C.10 D.9 13、 下列语句组中, 正确的是【 】 A.char *s;s="Olympic"; B.char s[7];s="Olympic"; C.char *s;s={"Olympic"}; D.char s[7];s={"Olympic"}; 14、 以下关于return语句的叙述中正确的是【 】 A.一个自定义函数中必须有一条return语句 B.一个自定义函数中能够根据不同情况设置多条return语句 C.定义成void类型的函数中能够有带返回值的return语句 D.没有return语句的自定义函数在执行结束时不能返回到调用处 15、 下列选项中, 能正确定义数组的语句是【 】 A.int num[0.. ]; B.int num[]; C.int N= ; int num[N]; D.#define N int num[N]; 16、 有以下程序 #include <stdio.h> void fun( char *c,int d) {*c=*c+1;d=d+1; printf( "%c,%c,",*c,d) ; main( ) {char b='a',a='A'; fun( &b,a) ;printf( "%c,%c\n",b, a) ; } 程序运行后的输出结果是【 】 A.b, B, b, A B.b, B, B, A C.a, B, B, a D.a, B, a, B 17、 若有定义int(*Pt)[3]; , 则下列说法正确的是【 】 A.定义了基类型为int的三个指针变量 B.定义了基类型为int的具有三个元素的指针数组pt C.定义了一个名为*pt、 具有三个元素的整型数组 D.定义了一个名为pt的指针变量, 它能够指向每行有三个整数元素的二维数组 18、 设有定义double a[10],*s=a;, 以下能够代表数组元素a[3]的是【 】 A.(*s)[3] B.*(s+3) C.*s[3] D.*s+3 19、 有以下程序 #include( stdio.h) main( ) {int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0; for( i=0;i<5;i++) s=s+a[b[i]]) ; printf( "%d\n", s) ; } 程序运行后的输出结果是【 】 A.6 B.10 C.11 D.15 20、 有以下程序 #include <stdio.h> main( ) {int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1; for( i=0;i<3;i++) for( j=ij<=1;j++) t+=b[i][b[j][i]]; printf( "%d\n",t) ; } 程序运行后的输出结果是【 】 A.1 B.3 C.4 D.9 21、 若有以下定义和语句 char s1[10]="abcd!",*s2="\n123\\"; printf( "%d %d\n", strlen( s1) ,strlen( s2) ) ; 则输出结果是【 】 A.5 5 B.10 5 C.10 7 D.5 8 22、 有以下程序 #include <stdio.h> #define N 8 void fun( int *x,int i) {*x=*( x+i) ;} main( ) {int a[N]={1,2,3,4,5,6,7,8},i; fun( a,2) ; for( i=O;i<N/2;i++) {printf( "%d",a[i]) ;} printf( "\n") ; } 程序运行后的输出结果是【 】 A.1313 B.2234 C.3234 D.1234 23、 有以下程序 #include <studio.h> int f( int t[ ],int n) ; main { int a[4]={1,2,3,4},s; s=f( a,4) ; printf( "%d\n",s) ; } int f( int t[ ],int n) { if( n>0) return t[n-1]+f( t,n-1) ; else return 0; } 程序运行后的输出结果是【 】 A.4 B.1O C.14 D.6 24、 有以下程序 #include <stdio.h> int fun( ) { static int x=1; x*2; return x; } main( ) {int i,s=1, for( i=1;i<=2;i++) s=fun( ) ; printf( "%d\n",s) ; } 程序运行后的输出结果是【 】 A.O B.1 C.4 D.8 25、 有以下程序 #include <stdio.h> #define SUB( a) ( a) -( a) main( ) { int a=2,b=3,c=5,d; d=SUB( a+b) *c; printf( "%d\n",d) ; } 程序运行后的输出结果是【 】 A.0 B.-12 C.-20 D.10 26、 设有定义: struct complex { int real,unreal;} data1={1,8},data2; 则以下赋值语句中错误的是【 】 A.data2=data1; B.data2=( 2,6) ; C.data2.real=data1.real; D.data2.real=data1.unreal; 27、 有以下程序 #include <stdio.h> #include <string.h> struct A { int a; char b[10]; double c;}; void f( struct A t) ; main( ) { struct A a={1001,"ZhangDa",1098.0}; f( a) ; printf( "%d,%s,%6.1f\n",a.a,a.b,a.c) ; } void f( struct A t) { t.a=1002; strcpy( t.b,"ChangRong") ;t.c=1202.0;} 程序运行后的输出结果是【 】 A.1001,zhangDa,1098.0 B.1002,changRong,1202.0 C.1001,ehangRong,1098.O D.1002,ZhangDa,1202.0 28、 有以下定义和语句 struct workers { int num;char name[20];char c; struct {int day; int month; int year;} s; }; struct workers w,*pw; pw=&w; 能给w中year成员赋1980的语句是【 】 A.*pw.year=198O; B.w.year=1980; C.pw->year=1980; D.w.s.year=1980; 29、 有以下程序 #include <stdio.h> main( ) { int a=2,b=2,c=2; printf( "%d\n",a/b&C.; } 程序运行后的输出结果是【 】 A.O B.1 C.2 D.3 30、 有以下程序 #include <stdio.h> main( ) { FILE *fp;char str[10]; fp=fopen( "myfile.dat","w") ; fputs( "abc",fp) ;fclose( fp) ; fpfopen( "myfile.data","a++") ; fprintf( fp,"%d",28) ; rewind( fp) ; fscanf( fp,"%s",str) ; puts( str) ; fclose( fp) ; } 程序运行后的输出结果是【 】 A.abc B. 28c C. abc28 D.因类型不一致而出错 二、 填空题( 每空2分, 共30分) 1、 设x为int型变量, 请写出一个关系表示式_____________________, 用以判断x同时为3和7的倍数时, 关系表示式的值为真。 2、 有以下程序 #include <stdio.h> main( ) { int a=1,b=2,c=3,d=0; if( a==1) if( b!=2) if( c==3) d=1; else d=2; else if( c!=3) d=3; else d=4; else d=5; printf( ”%d\n”,d) ; } 程序运行后的输出结果是_____________________。 3、 有以下程序 #include <stdio.h> main( ) { int m,n; scanf( "%d%d",&m,&n) ; while( m!=n) { while( m>n) m=m-n; while( m<n) n=n-m; } printf( ”%d\n”,m) ; } 程序运行后, 当输入14 63 <回车> 时, 输出结果是_____________________。 4、 有以下程序 #include <stdio.h> main( ) { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for( i=0;i<3;i++) for( j=i;j<3;j++) printf( ”%d%,a[i][j]) ; printf( "\n") ; } 程序运行后的输出结果是_____________________。 5、 有以下程序 #include <stdio.h> main( ) { int a[]={1,2,3,4,5,6},*k[3],i=0; while( i<3) { k[i]=&a[2*i]; printf( "%d",*k[i]) ; i++; } } 程序运行后的输出结果是_____________________。 6、 有以下程序 #include <stdio.h> main( ) { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3]={0},i; for( i=0;i<3;i++) b[i]=a[i][2]+a[2][i]; for( i=0;i<3;i++) printf( "%d",b[i]) ; printf( "\n") ; } 程序运行后的输出结果是_____________________。 7、 有以下程序 #include <stdio.h> #include <string.h> void fun( char *str) { char temp;int n,i; n=strlen( str) ; temp=str[n-1]; for( i=n-1;i>0;i--) str[i]=str[i-1]; str[0]=temp; } main( ) { char s[50]; scanf( "%s",s) ; fun( s) ; printf( "%s\n",s) ;} 程序运行后输入: abcdef<回车>, 则输出结果是_____________________。 8、 以下程序的功能是: 将值为三位正整数的变量x中的数值按照个位、 十位、 百位的顺序拆分并输出。请填空。 #include <stdio.h> main( ) { int x=256; printf( "%d-%d-%d\n",_____________________ ,x/10%10,x/100) ; } 9、 以下程序用以删除字符串所有的空格, 请填空。 #include <stdio.h> main( ) { char s[100]={"Our teacher teach C language!"};int i,j; for( i=j=0;s[i]!=’\0’;i++) if( s[i]!= ' ') {s[j]=s[i];j++;} s[j]= _____________________ printf( ”%s\n”,s) ; } 10以下程序的功能是: 借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。 #include <stdio.h> main( ) { int a[10],*p,*s; for( p=a;p-a<10;p++) scanf( "%d",p) ; for( p=a,s=a;p-a<10;p++) if( *p>*s) s=_____________________; printf( ”index=%d\n”,s-a) ; } 三、 程序改错题( 10分) 下列给定程序中, 函数proc的功能是:先从键盘输入一个3行3列的矩阵各个元素的值, 然后输出主对角线元素之积,请修函数proc中的错误使其能得出正确的结果。 注意不要修改主函数, 不要增删程序行或更改程序的结构。 #include <stdio.h> void proc() { int arr[3][3],mul; int i,j; mul=1; printf(" please input an 3*3 array:\n"); for (i=0;i<3;i++) { /*************第一处错误区**************/ for (i=0;j<3;j++) scanf("%d",&arr[i][i]); } for(i=0;i<3;i++) /*************第二处错误区**************/ mul=mul*arr[i][j]; printf("Mul=%d\n",mul); } void main() { proc(); } 四、 程序编写(15分) 请补充main函数, 该函数实现的功能是把一个二维字符数组中最大的字符拷贝到新的数组str中。例如: arr[3]={”hoih”,”yufui”,”xgf”},则str=”oyx”。 void main() { int i=0; char *arr[3]={ " hoih","yufui","xgf"}; char **p; char str[8]; /*************请开始编写******************/ str[i]= '\0'; printf(" new string \n"); puts(str); } C语言程序设计( A卷) 答案 一、 选择题 1-10: BBDCC DABCA 11-20: DDABDADBCC 21-30: ACBCCBADAC 二、 填空题 ( 1) ( X%3==0) &&( X%7==0) ( 2) 4 ( 3) 7 ( 4) 123569 ( 5) 135 ( 6) 101418 ( 7) fabcde ( 8) x%100%10 ( 9) s[i+1] ( 10) s+1 三、 程序改错题 for (i=0;j<3;j++)改为for (j=0;j<3;j++) mul=mul*arr[i][j]; 改为 mul=mul*arr[i][i]; 四、 程序编写 #include <stdlib.h> #include <stdio.h> void main() { int i=0; char *arr[3]={ " hoih","yufui","xgf"}; char **p; char str[8]; p=arr; for(i=0;i<3;i++) { str[i]=*p[i]; while(*p[i]) { if(str[i]<*p[i]) str[i]=*p[i]; p[i]++; } } str[i]= '\0'; printf(" new string \n"); puts(str); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 语言程序设计 期末考试 试题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文