分享
分销 收藏 举报 申诉 / 12
播放页_导航下方通栏广告

类型答案-C语言期中测试.doc

  • 上传人:仙人****88
  • 文档编号:11314124
  • 上传时间:2025-07-16
  • 格式:DOC
  • 页数:12
  • 大小:76KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    答案 语言 期中 测试
    资源描述:
    C语言期中测试 (开卷测试,答案写在白纸上) 一. 选择题 (1)C语言源程序名的后缀是 A).exe B).C C).obj D).cpp 这是C++的 (2)以下选项中,合法的一组C语言数值常量是 A)O28 B)12. C).177 D)0x8A 5e-3 OXa23 4c1.5 10,000 -0xf 4.5e0 Oabc 3.e5 (3)以下正确的字符串常量是 A)"\\\" B)’abc’ C)OlympicGames D)"" (4) 表达式3.6-5/2+1.2+5%2的值是 5/2=2  A)4.3 B)4.8 C)3.3 D)3.8 (5)以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定 (6)以下叙述中错误的是     A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 只有字符数组才行 B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 不会提示 D)可以通过赋初值的方式确定数组元素的个数 (7)以下叙述中错误的是  A)C语言源程序经编译后生成后缀为.obj的目标程序  B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件  C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中  D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (8)以下数组定义中错误的是  A)int x[][3]={0};     B)int x[2][3]={{1,2},{3,4},{5,6}};  C)int x[][3]={{1,2,3},{4,5,6}};  D)int x[2][]={1,2,3,4,5,6}; (9)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元 (10)有以下程序段 int j; float y; char name[50]; scanf("%2d%f%s",&j,&y,name); 当执行上述程序段,从键盘上输入55566 7777abc后,y的值为 A)55566.0 B)566.0 C)7777.0 D)566777.0 (11)有以下程序 #include<stdio.h> main() {int y=9; for( ; y>0;y--) if(y%3= =0) printf("%d",--y); } 程序的运行结果是 A)741 B)963 C)852 D)875421    (12) 有以下程序        #include<stdio.h> int a=4; int f(int n) {int t=0; static int a=5; if(n%2) {a=6; t+=a++;} else { a=7; t+=a++;} return t+a++; } void main() {int s=a,i=0; for(;i<2;i++) s+=f(i); printf ("%d\n",s); }         程序运行后的输出结果是         A)24            B)28          C)32          D)36 12 (13) 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义以下正确的程序段是  A)while((ch=getchar())!=′N′)printf(″%c″,ch);  B)while(ch=getchar()!=′N′)printf(″%c″,ch);  C)while(ch=getchar()==′N′)printf(″%c″,ch);  D)while((ch=getchar())==′N′)printf(″%c″,ch); (14)数字字符0的ASCII值为48,若有以下程序 main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是 () A)3,2 B)50,2 C)2,2 D)2,50 (15)有以下程序 main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是 () A)12353514 B)12353513 C)12343514 D)12343513 (16)有以下程序 main() {    int  a=1,b;    for(b=1;b<=10;b++)    {       if(a>=8)   break;       if(a%2==1)  {  a+=5;  continue;}       a-=3;    }    printf("%d\n",b); } 程序运行后的输出结果是    () A)3 B)4 C)5 D)6 (17)有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是() A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 (18)有以下程序 () int fun(int n) {if(n==1)return 1;  else return(n+fun(n-1)); } main() {int x;  scanf(″%d″,&x); x=fun(x); printf(″%d\n″,x); } 执行程序时,给变量x输入10,程序的输出结果是  A)55 B)54 C)65 D)45 (19)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值 () A)1 B)2 c)3 D)4 (20)有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是 A)42 B)45 C)56 D)60 (21))有以下程序 #include <stdio.h> void main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入(从第1列开始) 123〈回车〉 45678〈回车〉 则输出结果是  A)1267 B)1256 C)1278 D)1245 (22)有以下程序 #include <stdio.h> void main() {int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是  A)y=0  B)y=-1  C)y=1  D)while构成无限循环 (23)有以下程序 #define  P   3 #define  F(int  x)   {  return  (P*x*x);} main() {    printf("%d\n",F(3+5)); } 程序运行后的输出结果是               () A)192 B)29 C)25 D)编译出错 (24)有以下程序 main() {    int  num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;    for(i=0;i<4;i++)    {         for(j=1;j<=i;j++)     printf("%c",' ');         for(j=     ;j<4;j++)   printf("%4d",num[i][j]);         printf("\n");    } } 若要按以下形式输出数组右上半三角 1  2  3   4    6  7 8       11 12          16 则在程序下划线处应填入的是             () A) i-1 B) i C) i+1 D) 4-i (25)有以下程序 () fun(char p[][10]) {int n=0,i;  for(i=0;i<7;i++)   if(p[i][0]==′T′)n++;  return n; } main() {char str[][10]={ ″Mon″, ″Tue″, ″Wed″, ″Thu″, ″Fri″, ″Sat″, ″Sun″};  printf(″%d\n″,fun(str)); } 程序执行后的输出结果是  A)1 B)2 C)3 D)0 (26)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是( )           A)c=(c-‘A’)%26+’a’                     B)c=c+32           C)c=c-‘A’+’a’                         D)c=(‘A’+c)%26-‘a’ (27)有以下程序 () #include<stdio.h> void main() {int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) {if(j%2) continue;x++;} x++; } printf("x=%d\n",x); } 程序执行后的输出结果是  A)x=4 B)x=8 C)x=6 D)x=12 (28)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。         void f(int   b[],int   n,int   flag)         {int   i,j,t;        for(i=0;i<n-1;i++)         for (j=i+1;j<n;j++)           if(flag?b[i]>b[j]:b[i]<b[j]) {t=b[i];b[i]=b[j];b[j]=t; }        }        main()        {int a[10]={5,4,3,2,1,6,7,8,9,10},i;          f(&a[2],5,0); f(a,5,1);           for(i=0;i<10;i++) printf(“%d,”,a[i]);        }        程序运行后的输出结果是     A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10,    C)5,4,3,2,1,6,7,8,9,10, D)10,9,8,7,6,5,4,3,2,1,   (29) 有以下程序      #include<stdio.h> int a=4; int f(int n) {int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7;t+=a++;} return t+a++; } void main() {int s=a,i=0; for(;i<2;i++) s+=f(i); printf("%d\n",s); }  程序运行后的输出结果是         A)24            B)28          C)32          D)36 (30)有以下程序: main() { int i=0,a=0; while(i<30) {for(;;) {if((i%10)==0) break; else i--; } i+=11; a+=i; } printf(“%d\n”,a); } 程序的输出结果是:( ) a) 66 b) 63 c) 33 d) 32 二. 填空题 (1). 已知 f(int x) { if (x>2) x+f(--x); else return 0; } 则 f(3)= 0 。 (2) 当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行( 0 )  次。         #include <stdio.h>         main()         {char ch;          While((ch=getchar())==’0’)    printf(“#”);         } (3) 下面程序的运行结果是: 11 。 #include<stdio.h> fun(int t[],int n) {int i,m; if(n==1)return t[0]; else if(n>=2){m=fun(t,n-1); return m; } } main() {int a[]={11,4,6,3,8,2,3,5,9,2}; printf("%d\n",fun(a,10)); }   (4)以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三条件:a+b>c,a+c>b,b+c>a。请填空。 main() { float a,b,c; scanf(″%f%f%f″,&a,&b,&c); if( (4)(a+b>c)&&(a+c>b)&&(b+c>a) )printf(″YES\n″); /*a、b、c能构成三角形*/ else printf(″NO\n″); /*a、b、c不能构成三角形*/ } (5)以下程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main() { int i,j; for(i=0; (5)i<10 ;i++) { j=i*10+6; if((5.2)J%3!=0 )continue; printf(″%d ″,j); } }  (6)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下: #include <stdio.h> #include ″myfun.c″ main() { fun(); printf(″\n″);} myfun.c文件如下: void fun() {char s[80],c; int n=0; while((c=getchar())!=′\n′) s[n++]=c; n--; while(n>=0) printf(″%c″,s[n--]); } 当编译连接通过后,运行程序T18时,输入Thank!则输出结果是: (6) Knah 。 (7)以下程序运行时若从键盘输入:10  20  30<回车>。输出结果是  10300 。 #include  <stdio.h> main() {     int  i=0,j=0,k=0;       scanf("%d%*d%d",&i,&j,&k);       printf("%d%d%d\n",i,j,k); } (8) 以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回 0。请填空。 int isprime(int a) { int i; for(i=2;i<=a/2;i++) if(a%i==0) return 0 ; return 1 ; }   (9) 以下程序的运行结果是 @#& 。             main()          {int a=2,b=7,c=5;            switch(a>0)         {case 1:switch(b<0)                 {case 1: printf (“@”); break;                   Case 2: printf(“!”); break; }         case 0: switch(c==5)         { case 0: printf(“*”); break;          case 1: printf(“#”); break;          case 2: printf(“$”); break;          }         default : printf(“&”);         }         printf(“\n”);         } 三.写程序题 2、 写程序,实现矩阵(3行3列)的转置(即行列互换)。 例如,输入一面的矩阵: 程序输出: 试题程序: #include <stdio.h> #include <conio.h> int fun(int array[3][3]) { /*请在此处写下语句*/ int i,j,t; for(i=0;i<3;i++) for(j=0;j<2;j++) { t=array[i][j];array[i][j]=array[j][i]; array[j][i]=t;} } main() { int i,j; int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; clrscr(); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Converted array:\n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } }
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:答案-C语言期中测试.doc
    链接地址:https://www.zixin.com.cn/doc/11314124.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork