《2022年电大C语言程序设计期末考试试题A.docx》由会员分享,可在线阅读,更多相关《2022年电大C语言程序设计期末考试试题A.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源一、挑选题(每题1.5 分,共计 45 分)1、以下表达正确选项【】A. C语言程序是由过程和函数组成的B. C语言函数可以嵌套调用,例如:funfunxC. C语言函数不行以单独编译D. C语言中除了main 函数,其他函数不行作为单独文件形式存在2、以下关于 C 语言的表达中正确选项【】A. C语言中的注释不行以夹在变量名或关键字的中间B. C语言中的变量可以在使用之前的任何位置进行定义C. 在 C 语言算术表达式的书写中,运算符两侧的运算数类型必需一样D. C语言的数据常量中夹带空格不影响常量的正常使用3、以下 C语言用户标识符中,不合法的是【】A. _1B. AaBcC.
2、a_bD. ab4、如有定义: 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 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 列开头, 代表回车,留意:回车也是一个字符) 1234就输出结
3、果是【】A 1234B. 12C. 12 3D. 12 346、以下关于 C 语言数据类型使用的表达中错误选项【】A. 如要精确无误差的表示自然数,应使用整数类型欢迎下载精品学习资源B. 如要储存带有多位小数的数据,应使用双精度类型 C如要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D如只处理“真”和“假”两种规律值,应使用规律类型7、如 a 是数值类型,就规律表达式(a= =1 ) | ( a.=1 )的值是【】A. 1B. 0C. 2D. 不知道 a 的值,不能确定8、以下选项中与if ( a= =1 ) a=b; else a+; 语句功能不同的 switch语句是【】
4、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( ab)if ( ac) k=a;else k=c; elseif ( bc) k=b ;else k=c;以下选项中与上述if语句等价的语句是【】A k( a b ? a:b ;k( b c)? b:
5、c ;B k( a b ?( b c)? a:b: ( bc)? b:c );C k( a b)?( ac)? a:c ) : ( b e)? b:c );D k( a b)? a:b ;k=( a c)? a:c ;10、有以下程序 include stdio.hmain () 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=6B. m=2C. m=4D. m=511、有以下程序 include(
6、stdio.hmain () int a l ;b 2;for (; a 8;a+) b+=a;a+=2; printf( %d, %d n ,a, b);程序运行后的输出结果是【】A 9,18B 8,11C 7,11D 10, 1412、有以下程序,其中k 的初值为八进制数#include main () int k 011;printf( %d n , k+);程序运行后的输出结果是【】A. 12B. 11C. 10D. 913、以下语句组中,正确选项【】A. char *s;s=Olympic;B. char s7;s=Olympic;C. char *s;s= Olympic;D. c
7、har s7;s= Olympic;14、以下关于 return语句的表达中正确选项【】A. 一个自定义函数中必需有一条return语句欢迎下载精品学习资源B. 一个自定义函数中可以依据不怜悯形设置多条return语句C. 定义成 void类型的函数中可以有带返回值的return语句D. 没有 return语句的自定义函数在执行终止时不能返回到调用处15、以下选项中,能正确定义数组的语句是【】A. int num0.2021;B. int num;C. int N=2021 ;int numN;D. #define N 2021 int numN;16、有以下程序#include void f
8、un( 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, AB. b,B, B, AC. a,B, B, aD. a,B, a, B17、如有定义 int*Pt3;,就以下说法正确选项【】A. 定义了基类型为int的三个指针变量B. 定义了基类型为int的具有三个元素的指针数组ptC. 定义了一个名为*pt 、具有三个元素的整型数组D. 定义了一个名为pt 的指针变量,它可以指向每行有三个
9、整数元素的二维数组18、设有定义 double a10,*s=a;,以下能够代表数组元素a3 的是【】A *s3B *s+3C *s3D *s+319、有以下程序 include( stdio.h)main () int a5= 1,2,3,4,5 ,b5 O,2,1,3,0 ,i,s 0;for ( i 0;i 5;i+ ) s s+abi);printf( %d n, s);程序运行后的输出结果是【】欢迎下载精品学习资源A. 6B. 10C. 11D. 1520、有以下程序 include main () int b 33= O,1,2,0,1,2,O,1,2 ,i,j,t=1;for (
10、 i=0 ;i3 ; i+ )for ( j=ij=1;j+ ) t+=bibji;printf( %dn,t);程序运行后的输出结果是【】A. 1B. 3C. 4D. 921、如有以下定义和语句char s110=abcd.,*s2=n123;printf( %d %dn, strlen( s1) ,strlen( s2);就输出结果是【】A 5 5B 10 5C 10 7D 5 822、有以下程序#include #define N 8void fun( int *x,int i) *x=* ( x i );main ()int aN= 1,2,3,4,5,6,7,8 ,i ;fun (
11、a,2 );for ( i=O;i N 2;i+ ) printf( %d,ai);printf( n);程序运行后的输出结果是【】A 1313B 2234C 3234D 1234欢迎下载精品学习资源23、有以下程序#include int f( int t,int n);main int a4=1,2,3,4,s;s=f ( a,4 ); printf(%dn,s);int f( int t,int n) if(n0) return tn-1+f( t,n-1);else return 0;程序运行后的输出结果是【】A. 4B. 1OC. 14D. 624、有以下程序#include int
12、 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. OB. 1C. 4D. 825、有以下程序#include #define SUB ( a) ( a) - ( a) main () int a=2,b=3,c=5,d;d=SUB( a+b) *c ;printf( %d n,d );程序运行后的输出结果是【】A 0B -12欢迎下载精品学习资源C -20D 1026、设有定义 :struct complex
13、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 #include struct A int a; char b10; double c; ;void f( struct A t);main () struct A a=1001,ZhangDa,1098.0;f ( a); printf( %d,%s,%6.1fn,a.a,a.b,a.c);voi
14、d f( struct A t) t.a=1002; strcpy(t.b,ChangRong); t.c=1202.0;程序运行后的输出结果是【】A 1001,zhangDa,1098.0B 1002,changRong,1202.0C 1001,ehangRong,1098.OD 1002,ZhangDa,1202.028、有以下定义和语句struct workers int num;char name20;char c ;struct int day; int month; int year; s ;struct workers w,*pw;pw &w;能给 w中 year 成员赋 19
15、80 的语句是【】A. *pw.year 198O;B. w.year=1980 ;C. pw-year=1980 ;D. w.s.year=1980;29、有以下程序#include 欢迎下载精品学习资源main () int a=2,b=2,c=2;printf( %dn,a/b&C ;程序运行后的输出结果是【】A. OB. 1C. 2D. 330、有以下程序#include main () FILE *fp;char str10;fp=fopen ( myfile.dat,w);fputs ( abc,fp); fclose( fp );fpfopen ( myfile.data,a+)
16、;fprintf( fp,%d,28);rewindfscanf( fp );( fp,%s,str); puts(str );fclose( fp );程序运行后的输出结果是【】A. abcB. 28cC. abc28 D因类型不一样而出错二、填空题(每空2 分,共 30 分)1、设 x 为 int型变量,请写出一个关系表达式 ,用以判定 x 同时为 3 和 7 的倍数时,关系表达式的值为真;2、有以下程序#include main () int a=1,b=2,c=3,d=0;if ( a=1) if ( b.=2 )if ( c=3)d=1;elsed=2;else if( c.=3 )
17、 d=3 ;elsed=4;elsed=5;printf(“ %dn” ,d );欢迎下载精品学习资源程序运行后的输出结果是 ;3、有以下程序#include main () int m,n;scanf ( %d%d,&m,&n);while ( m.=n) while( mn) m=m-n;while ( mn) n=n-m ;printf(“ %dn” ,m);程序运行后,当输入14 63 时,输出结果是;4、有以下程序#include main () int i,j,a3=1,2,3,4,5,6,7,8,9;for ( i=0 ;i3 ; i+ )for ( j=i ;j3 ; j+ )
18、 printf(“ %d%,aij);printf( n);程序运行后的输出结果是 ;5、有以下程序#include main () int a=1,2,3,4,5,6,*k3,i=0;while ( i3 ) ki=&a2*i;printf( %d,*ki);i+ ;程序运行后的输出结果是 ;6、有以下程序#include main () int a33=1,2,3,4,5,6,7,8,9;int b3=0,i;for ( i=0 ;i3 ; i+ ) bi=ai2+a2i;for ( i=0 ;i3 ; i+ ) printf( %d,bi);printf( n);欢迎下载精品学习资源程序
19、运行后的输出结果是 ;7、有以下程序#include #include void fun( char *str) char temp;int n,i;n=strlen( str );temp=strn-1;for ( i=n-1 ;i0 ;i-) stri=stri-1;str0=temp;main () char s50;scanf ( %s,s ); fun ( s); printf(%sn,s); 程序运行后输入:abcdef,就输出结果是;8、以下程序的功能是:将值为三位正整数的变量x 中的数值依据个位、十位、百位的次序拆分并输出;请填空;#include main () int x=
20、256;printf( %d-%d-%dn,x/10%10,x/100);9、以下程序用以删除字符串全部的空格,请填空;#include main () char s100=Our teacher teach C language.;int i,j;for ( i=j=0 ;si.= 0 ; i+ )if ( si.= ) sj=si;j+ ; sj= printf(“ %sn” ,s );10 以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值;请填空;#include main () int a10,*p,*s;for ( p=a;p-a10 ;p+) scanf( %d
21、,p );for ( p=a,s=a ;p-a*s ) s=;printf(“ index=%dn ” ,s-a ); 三、程序改错题( 10 分)以下给定程序中,函数proc的功能是 : 先从键盘输入一个3 行 3 列的矩阵各个元素的值,然后输出主对角线元素之积 , 请修函数 proc 中的错误使其能得出正确的结果;欢迎下载精品学习资源留意不要修改主函数,不要增删程序行或更换程序的结构;#include void procint arr33,mul;int i,j;mul=1 ;printf please input an 3*3 array:n;for i=0;i3 ;i+/*第一处错误区
22、 */ for i=0;j3 ;j+ scanf%d,&arrii;fori=0; i3 ; i+/*其次处错误区 */ mul=mul*arrij;printfMul=%dn,mul;void mainproc;四、程序编写 15 分请补充 main 函数,该函数实现的功能是把一个二维字符数组中最大的字符拷贝到新的数组str 中;例如: arr3= “hoih ”,”yufui ”,”xgf ”, 就 str=”oyx ”;void mainint i=0;char *arr3= hoih,yufui,xgf;char *p;char str8;/*请开头编写 */欢迎下载精品学习资源str
23、i= 0;printf new string n;putsstr;欢迎下载精品学习资源C语言程序设计( A 卷)答案一、挑选题1-10 : BBDCC DABCA11-20 : DDABDADBCC21-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) si+1( 10) s+1三、程序改错题for i=0; j3 ; j+ 改为 for j=0;j3 ;j+ mul=mul*arrij; 改为 mul=mul*arrii;四、程序编写#include #include void main int i=0 ;char *arr3= hoih,yufui,xgf;char *p;p=arr;fori=0;i3 ;i+stri=*pi;while*piifstri*pistri=*pi;pi+;char str8;stri= 0;printf new string n;putsstr;欢迎下载精品学习资源欢迎下载
限制150内