2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)_第1页
2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)_第2页
2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)_第3页
2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)_第4页
2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022年华东理工大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。2、C语言源程序的基本单位是________3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言的赋值表达式中,赋值号左边必须是_______5、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_______。6、已有一维数组a,n为元素的个数,且各元素均有值;函数voidprocess(float*p,intn,float(*fun)(float*,int))为一个可完成下面各种计算的通用函数。请分别写出用于以下计算的各函数中的调用语句_______、_______和_______。(1)floatarr_add(float*arr,intn)计算数组元素值之和。(2)floatodd_add(float*p,intn)计算下标为奇数的元素之和。(3)floatarr_ave(float*p,intn)计算各元素的平均值。7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_______,改正后为_______。voidadd(floata,floatb){floatc;c=a+b;returnc;}8、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。#include<stdio.h>intmain(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%d",&.a,&.b);scanf("x=%fy=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}9、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。_______;a=b;b=c;_______;10、在C语言中,二维数组元素在内存中的存放顺序是_______。二、选择题11、下面4个选项中,是不合法的浮点数的选项是()。A.160.B.123C.-18D.-e312、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是()13、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&C.;为使变量a的值为1,b的值为3,c的值为2;从键盘输入数据的正确形式应当是()。(注:囗表示空格)A.132<回车>B.1,3,2<回车>C.a=1囗b=3囗c=2<回车>D.a=1,b=3,c=2<回车>14、设有如下程序:#include<stdio.h>intmain(){charch1='A',ch2='a';printf("%c\n",(chl,ch2));return0;}则以下叙述中正确的是()。A.程序的输出结果为大写字母AB.程序的输出结果为小写字母aC.运行时产生错误信息D.格式说明符的个数少于输出项的个数,编译出错15、判断字符串a和b是否相等,应当使用()。A.if(a==B.B.if(a=B.C.if(strcpy(a,B.)D.if(strcmp(a,B.)16、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束17、以下描述中正确的是()A.while、do-while、for循环中的循环体语句都至少被执行一次B.do-while循环中,while(表达式)后面的分号可以省略C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作D.do-while循环中,根据情况可以省略while18、以下程序有语法性错误,有关错误原因的正确说法是()。#include<stdio.h>intmain(){intG=5,k;voidprt_char();-----k=prt_char(G);---}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、设有以下定义:char*cc[2]={"1234","5678");则正确的叙述是()。A.cc数组的两个元素中各自存放了字符串”1234”和"5678”的首地址B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址C.cc是指针变量,它指向含有两个数组元素的字符型一维数组D.cc数组元素的值分别是1234和567820、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA","C");则language[2]的值是()。A.一个字符B.一个地址C.一个字符串D.一个不定值21、以下程序的运行结果是()。#include<stdio.h>intfun(inta,intB.{if(a>B.return(a+B.;elsereturn(a-B.;intmain(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);return(0);}A.-16B.-17C.17D.1622、下面程序段的运行结果是()。inta[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);}A)-40404B)-40403C)-40443D)-4044023、有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请选择填空。#include<stdio.h>intmain(){chara[20]="cehikngtw",s[]="fbla";inti,k,j;for(k=0;s[k]!=\0';k++){j=0;while(s[k]>=a[j]&&a[]!=\0)j++;for(i=strlen(a);i>=j;i--)[2];a[j]=s[k];puts(a);return0;}A)a[i]=a[i+1]B)a[i+1]=a[i]C)a[i]=a[i-1]D)a[i-1]=a[i]24、若变量都已正确定义,则以下程序段的输出是()。a=10;b=50;c=30;if(a>B.a=b,b=c;c=a;printf("a=%db=%dc=%d\n".a,b,C.;A.a=10b=30c=10B.a=10b=50c=10C.a=50b=30c=10D.a=50b=30c=5025、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果()#include<stdio.h>intmain(){intc;while((c=getchar())!='\n')switch(c-'2'){case0:case1;putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default;putchar(c+2);break;}return0;}A.668977B.668966C.66778777D.6688766三、读程序填空26、以下printf语句中的负号的作用是_______,该程序的输出结果是_______。#include<stdio.h>intmain(){intx=12;doublea=3.1415926;printf("%6d##\n",x);printf("%一6d##\n",x);printf("%14.101f##\n",a);printf("%-14.101f##\n",a);return0;}27、以下程序的输出结果是_______。#include<stdio.h>intmain(){floata=123.456;doubleb=8765.4567;printf("(1)%f\n",a);printf("(2)%14.3f\n",a);printf("(3)%6.4f\n",a);printf("(4)%lf\n",b);printf("(5)%14.3lf\n",b);printf("(6)%8.4lf\n",b);printf("(7)%.4f\n",b);return0;}28、某服装店经营套服且单件出售。若一次购买不少于50套,则每套80元;若不足50套,则每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款数m。请填空。#include<stdio.h>intmain(){intc,t,m;printf("inputthenumberofcoatandtrousersyouwanttobuy:\n");scanf("%d%d",&c,&t);if(_______)if(c>=50)m=c*80;elsem=c*90;elseif(_______)if(t>=50)m=t*80+(c-t)*60;elsem=t*90+(c-t)*60;elseif(_______)m=c*80+(t-c)*45;elsem=c*90+(t-c)*45;printf("%d",m);return0}29、以下程序的运行结果是_______。#include<stdio.h>intmain(){inta=-10,b=-3;printf("%d,",一a%b);printf("%d,",(a-b,a+b));printf("%d\n",a-b?a-b:a+b);return0;}30、下面程序的功能是计算1-3+5-7+…-99+101的值。请填空。#include<stdio.h>intmain(){inti,t=1,s=0;for(i=1;i<=101;i+=2){[_______];s=s+t;_______;}printf("%d\n",s);return0;}31、以下程序的运行结果是_______。#include<stdio.h>#include<math.h>intfun(intn){inti,m=0;longs=1;for(i=1;i<=n;i++)s=s*n;s=s%1000;do{m=m+s%10;s=s/10;}while(s);returnm;intmain(){intd;d=fun(5);printf("\nsum=%d\n",d);return(0);}32、下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。#include<stdio.h>intmain(){inta[3]={5,9,19};intb[5]={12,24,26,37,48};intc[10],i=0,j=0,k=0;while(i<3&&.j<5)if(_______){c[k]=b[];k++;j++;}else{c[k]=a[i];k++;i++;}while(_______){c[k]=a[i];i++;k++;}while(_______){c[k]=b[];k+十;j++;}for(i=0;i<k;i++)printf("%3d",c[i]);return0}33、若从键盘输入:2<回车>,则下面程序的运行结果是_______。#include<stdio.h>intmain(){char*b[]={"English","Physics","Maths","Pascal","Chemistry","End","Error"};intnum;printf("Enteraintegerthatshouldbebetween0to9\n");scanf("%d”,&.num);if(num>=0&&num<=9)if(num>=1&&num<=5)printf("Thechosenclassis:%s.\n",b[num-1]);elseprintf("Noclassischosen.%s!!\n",b[5]);elseprintf("Yourinputis:%s!!\n",b[6]);return(0);}四、编程题34、编写程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。35、用switch语句编程实现以下函数关系:y=-1

参考答案一、填空题1、【1】取地址【2】按位与2、函数3、主函数(或main函数)4、变量5、266、【1】process(a,n,arr_add);【2】process(a.n,odd_add);【3】process(a,n,arr_ave);7、【1】voidadd(floata,floatb)【2】floatadd(floata,floatb)8、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车>(注:答案中的囗代表空格)9、【1】t=a【2】c=t10、按行主顺序存放二、选择题11、B12、C13、D14、B15、D16、A17、C18、C19、A20、B21、

温馨提示

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

最新文档

评论

0/150

提交评论