2023年秋季C语言程序设计期末考试题A卷答案答案_第1页
2023年秋季C语言程序设计期末考试题A卷答案答案_第2页
2023年秋季C语言程序设计期末考试题A卷答案答案_第3页
2023年秋季C语言程序设计期末考试题A卷答案答案_第4页
2023年秋季C语言程序设计期末考试题A卷答案答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

A卷A卷2023—2023学年第二学期《程序设计语言(C)》试卷参考答案和评分标准专业班级姓名学号开课系室软件工程系考试日期2023年7月3日题号一二三总分得分阅卷人ﻬ程序设计语言(C)试卷(A卷)答题卡说明:1.选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。得分2.本试卷连同封面共13页,不得拆开。单项选择题(对的的答案涂黑或画圈,每题1分,共20分)1ACD11ACD2ACD12ACD3ABD13ABD4ACD14ABC5ACD15BCD6ACD16ACD7ABD17BCD8ACD18ACD9ABD19ACD10ABC20ABC得分读程序填空题(在空格处填写对的答案,每空2分,共20分)⑴q—或q=q-1或--q⑹x>=0或x>0⑵fac/i或1.0/i⑺return(-x)或return-x⑶s⑻n/2或(n+1)/2⑷!feof(fp)或ch!=EOF⑼1⑸fp⑽1

一、单项选择题(每题1分,20分)1.现有程序完毕a、b两个值的互换,空白处对的的答案应当是_______。main(){inta,b,t;t=b

;b=a

;________

;}A.a=b B.a=t C.b=t D.t=a2.假如程序中用到标准库函数log(),那么该程序应含下面哪条语句_________。A.#include”stdio.h”B.#include”math.h

“C.#include”string.h”D.#include”stdlib.h”3.intx=6;则下方程序段运营结果是_________。switch(x){case1:printf(“apple“);break;case2:printf(“hello“);break;case3:printf(“world“);default:printf(“thankyou“);}A.appleB.helloC.thankyouD.worldthankyou4.在C语言中,不合法的int型常量是_________。A.32767 B.0578C.0XAACﻩD.32768L5.设x,y,z和k都是int型变量,则执行表达式:x=(y=2,z=15,k=30)后,x的值为________。A.52B.30C.15D.26.设x为int型变量,则执行以下语句后,x的值为________。x=10;x+=x-=x-x;A.30ﻩﻩB.20C.10 ﻩD.407.在下列运算符中,优先级最高的运算符是()A.== ﻩB.!= C.%ﻩﻩD.||8.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||--y;后y的值为________。A.4B.3C.2D.19.语句printf(“%%%%\n”);的输出为________。A.####B.%%%%\nC.%%D.%%%%10.#include<stdio.h>main(){chara1,a2,a3,a4,a5,a6;scanf(“%c%c%c%c”,&a1,&a2,&a3,&a4);a5=getchar();a6=getchar();putchar(a1);putchar(a2);printf(“%c%c\n”,a5,a6);}如:123回车45678回车结果是_________。A.1267ﻩﻩB.1256ﻩﻩC.1278ﻩﻩD.124511.若有intx,y,z;scanf("%d%d%d",&x,&y,&z);则运营时输入方式错误的是________。A.456B.4,5,6C.4D.4556612.下面程序段执行结果是________。inty=25;while(y--);printf(“y=%d”,y);A.0B.-1C.1D.无限循环13.不对的的字符串赋值或赋初值方式是________。A.char*str;str="string";B.charstr[7]={'s','t','r','i','n','g',‘\0’}

C.charstr1[10];str1="string";D.charstr1[]="string",str2[]="12345678";14.对于inta[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;则程序段执行后*(p+3)的值为_________。A.5B.3C.4D.615.若有说明语句:inta[]={1,2,3,4,5,6,7,8},*p=a;且0≤i≤7,则________是对数组元素的错误表达。A.p+iB.a[p-a]C.*(a+i)D.p[i]16.以下选项中不能对的把c1定义成结构体变量的是A.structcolorB.structcolorcl{intred;{intred;intgreen;intgreen;intblue;intblue;};ﻩ};structcolorc1;C.structcolor D.struct{intred;{intred;intgreen;intgreen;intblue;intblue;}cl;}cl;17.对于inta[3][2]={1,2,3};元素a[1][1]的值为_________。A.0B.1C.3D.不能拟定18.设x和y均为int型变量,则执行下面的循环后,y的值为______。for(y=1,x=1;y<=20;y++){if(x==8)break;if(x%2==1){x+=5;continue;}x-=3;}A.2ﻩﻩB.4 C.6ﻩ D.819.假定所有变量均已对的定义,则下列程序段运营后x的值是_________。a=0;b=0;c=0;x=35;if(!a)x=x-1;elseif(b)x=x+1;if(c)x=3;elsex=4;A.34 B.4ﻩC.35ﻩ ﻩD.320.现有一个文本文献,想以追加方式打开,下列方式对的的是__________。 if((fp=fopen("fname.dat","____"))==NULL){printf("cannotopenfile!\n",num);exit(0);}A.w ﻩB.abﻩﻩC.b ﻩD.a二、读程序填空(每空2分,共20分)1.判断一个字符串是否回文(顺读和逆读相同,如字符串“abcba”就是回文)/*该函数返回值为1代表是回文,返回0代表不是回文*/intverse(char*p){char*q=p;while(*q!=’\0)q++;⑴;while(p<q)if(*p++!=*q--)return0;return1;}2.以下函数的功能是计算s=1+++……+的值,请填空。doublefun(intn){doubles=0.0,fac=1.0;inti;for(i=1;i<=n;i++)s=s+⑵;return⑶;}3.下面的程序用来记录文本文献fname.dat中的字符数,将程序补充完整。#include"stdio.h"voidmain(){FILE*fp;longnum=0;charch;if((fp=fopen("fname.dat","r"))==NULL){printf("cannotopenfile!\n",num);exit(0);}ch=fgetc(fp);while(⑷){num++;ch=fgetc(fp);}printf("num=%d\n",num);fclose(⑸);}4.设fun()是用户自定义函数,其功能是求一个数的绝对值,请填空。#include<stdio.h>#include"math.h"intfun(intx){if⑹;return(x)else⑺;}main(){inta;scanf("%d",&a);printf("绝对值是%d\n",fun(a));}5.将数组a中的n个整数按相反顺序存放。voidinv(intx[],intn){intt,k,j;for(k=0;k<⑻;k++){t=x[n-1-k];x[n-1-k]=x[k];x[k]=t;}}voidmain(){inti,a[6]={3,7,9,11,0,6};inv(a,6);for(i=0;i<6;i++)printf("%d,",a[i]);printf("\n");}6.下列程序段运营后输出的结果是a=⑼,b=⑽。intx=0,a=0,b=0;switch(x){case0:b++;case1:a++;break;case2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);得分三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x为实数,由键盘输入。(12分)-1x≤-5y=(x-1)2-5<x<5x≥5参考答案:#include<stdio.h>main(){floatx,y;printf("请输入实数x:");scanf("%f",&x);if(x<=-5)y=-1;elseif(x<5)y=(x-1)*(x-1);elsey=1/x;printf("y=%f",y);}[评分标准]:头文献、程序框架占2分;读入x值占1分;每个分支语句各占3分,共9分。2.设有一组数{12,32,23,45,44,65,67,9,100,80},编写一个完整的程序实现从小到大排序。(12分)参考答案:#include<stdio.h>main(){inta[10]={12,32,23,45,44,65,67,9,100,80};inti,j,t;for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i<10;i++)printf("%4d",a[i]);}[评分标准]:头文献、程序框架占2分;数组a定义及初始化占2分;外层循环占2分;内层循环占2分;元素互换部分占4分。3.编程将字符串s2的内容连接到字符串s1后,如s1中存放“hello”,s2中存放“world”,连接后s1的内容为“helloworld”(不能使用strcat函数,字符串结束标志为’\0’)。(10分)参考答案:#include<string.h>#include<stdio.h>main(){charstr1[80],str2[80];inti=0,j=0;printf("输入两个字符串:");gets(str1);gets(str2);i=strlen(str1);while(str1[i++]=str2[j++]!='\0');printf("连接之后的字符串为:%s",str1);}[评分标准]:头文献、程序框架占2分;字符数组str1、str2初始化占3分;求出str1长度占2分;str2内容赋值到str1中占3分。4.编一个名为average的函数,其功能是求形参数组的平均值。调用average的主函数部分源代码如下。(10分)floataverage(floatscore[],intn){inti;floarave=0;for(i=0;i<n;i++)ave+=score[i];returnave/n;}main(){floatscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score,10);printf("averagescoreis%5.2f",aver);}[评分标准]:函数头对的定义占4分;ave初始化及返回值占2分;循环求累加和占4分。5.编写一个函数fun,其功能是:将一个字符串str1(元素起始下标为0)中的所有偶数位上的小写字母复制成为一个新字符串str2。如str1串为“abCDefgh123”,则新串str2为“aeg”。主函数部分源代码如下。(10分)#include<stdio.h>#includ

温馨提示

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

评论

0/150

提交评论