C语言程序设计试题十_第1页
C语言程序设计试题十_第2页
C语言程序设计试题十_第3页
C语言程序设计试题十_第4页
C语言程序设计试题十_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

理工科非计算专业C语言程序设计试卷C一、选择题:将答案写在答题纸上,方法是用铅笔将正确答案所对应的圆圈涂黑:○→●(注意:每小题只能涂一个圆圈,多涂无效)(1’x40,共40分)1C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。A.地址B.由实参传给形参,并由形参传回给实参D.由用户指定传递方式C.值传递2不能把字符串:Hello!赋给数组b的语句是()A.charb[10]={'H','e','l','l','o','!'};C.charb[10];b="Hello!";B.charb[10];strcpy(b,"Hello!");D.charb[10]="Hello!";3在C语言中,有表达式x=abs(8-10),则x的值为()A.–2B.2C.18D.804在C语言中,以下哪个函数用于字符串的比较()A.strcpy()B.strcmp()C.strcat()D.strlen()5若有说明和语句:inta=8;intc=++a;此处表达式c的值是()A.76在C语言中,执行语句:for(i=1;i<4;i++);后,变量i的值是()A.3C.5D.4B.不定7下列()表达式不满足:当x的值为偶数时值为“真”,为奇数时值为“假”。B.9C.10D.6A.x%2==0B.!(x%2)C.(x/2*2-x)==0D.!x%2!=08在C语言中,若有定义inty=2;floatz=5.5,x=-4.3;则表达式y+=abs(x)+x+z的值为()A.69在C语言中,若有定义:inty=3;intx[7]={1,2,3,4,5,6,7},则表达式y+=x[5]的值为()A.8B.9C.10D.1110设a=3,b=4,c=5,d=6,则表达式:b<a?a:c<d?a:d的结果为()A.4B.3C.2D.1B.7C.8D.911设x,y,z,t均为int型变量,则执行以下语句后,t的值为()x=y=z=1;t=++x||++y&&++z;A.不定值B.2C.1D.012设有以下宏定义:#define#defineN3Y(n)((N+1)*n)则执行语句:z=2*A.出错B.4213若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.514在C语言中,以下一组运算符中,优先级最高的运算符是()C.32D.54A.<=B.=C.&&D.%15函数调用:strcat(strcpy(str1,str2),str3)的功能是()A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2连接到串str1之后再将串str1复制到串strD.将串str2复制到串str1中后再将串str3连接到串str16若已知inta,x,以下(A.a=-a=(x=1,x++,x+2)C.a=(a[2]+a[2]/2))是正确的赋值语句B.a*=*a+1D.a="good"17若有说明和语句:inta=5;intc=a++;此处c的值是()A.518在C语言中,若a=0x21,则printf("%d",a);输出值为()A.20B.32C.33D.21B.6C.7D.419设x为int型变量,则执行以下语句后,x的值为()x=10;x=x+--x;A.10B.20C.18D.1920执行下面语句后的输出为()intI=1;if(I<=0)printf("****\n")elseprintf("%%%%\n");A.****B.%%%%C.%%%%cD.有语法错,不能正确执行21若x=0,y=1,则语句while(x==y){x++;break;}循环体执行次数是()。A.0B.2C.1D.322若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()A.aB.a>0C.a<0D.a=023下面的()代表一个十六进制整数。A.'A'B.65C.0101D.0x4124若整型变量I的初值为5,则语句printf("%d,%d,%d,%d\n",I,I--,--I,I);输出的结果是()A.5,4,3,5B.5,4,4,3C.5,4,3,3D.3,4,4,525假定有以下变量定义:intk=7,x=12;则能使值为3的表达式是()A.x%=(K%=5)C.x%=k-k%5B.x%=(k-k%5)D.(x%=k)-(k%=5)26以下程序的输出结果是()main(){inta=12,b=12;printf("%d%d\n",--a,++b);}A.1010B.1113C.1110D.121227下列语句中符合C语言语法的赋值语句是:()A.a=0x7bc=a7;C.a=0x7b,b,a7;B.a=0x7b,c=a7;D.a=0x7b=a7;28设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为()A.4B.3C.2D.129以下叙述中不正确的是()A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范30设k为整型变量,则下面while循环共执行()次k=2;while(k!=0)printf("%d",k),k--;printf("\n");A.无限多B.0C.1D.231在C语言中,合法的数组定义是()A.inta[]="string";B.inta[5]={0,1,2,3,4,5};D.ints="string";C.chara[]={0,1,2,3,4,5};32若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(A.floatB.intC.doubleD.char33若有定义和语句:chars[10];s="abcd";printf("%s\n",s);则结果是(以下u代表空格)A.输出abcdC.输出abcduuuuuD.编译不通过34表达式:10!=9的值是()B.非零值A.trueC.0B.输出aD.135在下列选项中,不正确的赋值语句是()A.++t;B.n1=(n2=(n3=0));C.k=i==j;D.a=b+c=1;36在C语言中,能正确表示a≥10或a≤0的关系表达式是()A.a>=10ora<=0C.a>=10&&a<=037若有以下定义:B.a>=10||a<=0D.a>=10│a<=0inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的A.a[g-c]C.a['d'-'c']B.a['d'-c]D.a[4]38选择出正确的说明语句()A.intA[3.6];C.intA[][];B.intA[3,4];D.int*A[10];39在C语言中,若有定义:staticintx[2][3]={2,3,4,5,6,7},则表达式*x[1]的值为()A.5B.3C.4D.240在C语言中,定义数组inta[7]={3,4,5,6,7,8,9},则a[5]的值为()A.8B.6C.7D.9二、写出下列程序的运行结果:5’x21.#include"stdio.h"voidff(int*m,intn){printf("*m=%d,n=%d\n",*m,n);(*m)+=3;n+=2;printf("*m=%d,n=%d\n",*m,n);}main(){intx=2,y=3,*p=&x;printf("x=%d,y=%d\n",x,y);ff(p,y);printf("x=%d,y=%d\n",x,y);}2.#include"stdio.h"intfb(intb[],inti){intk;staticints=0;for(k=0;k<i;k++)s=s+b[k];return(s);}main(){inta[]={1,2,3,4},j=0;for(;j<4;j++)printf("j=%d,fb=%d\n",j,fb(a,j));}三、程序改错:每道程序有两个错误语句,即后面标有"***"号的语句,请将正确的语句按序号填在答题纸上。(6’x3,共18分)1.已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述:F(1)=1ifn=1F(2)=1ifn=2F(n)=F(n-1)+F(n-2)ifn>2以下程序是求F(30),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include<math.h>#include<stdio.h>main(){doublef1,f2;inti;f1=1;f2=1;for(i=1;i<=30;i++){***①f1=f1+f2;f2=f2+f1;}clrscr();printf("\nthenumberis:%12.0lf",f1);***②}2.例程序中,函数fun的功能是:计算并输出k以内的最大的10个能被13和17整除的自然数之和。请改正程序中的错误,并运行正确的程序。当从键盘输入2500时,给出程序运行的正确结果<conio.h>#include<stdio.h>intfun(intk){intm=0,mc=0,j;while((k>=2)&&mc<10){if((k%13==0)||#include(k%17==0))***①{m=m+k;mc++;}k--;}return;}main(){intk;clrscr();printf("\n请输入整***②printf("\n结果是:%d\n",fun(k));}数:");scanf("%d",k);3.若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2,下面程序[1,700]间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include<conio.h>#include<stdio.h>#include<math.h>main(){inta,b,c,n,count=0;for(a=1;a<=700;a++){b=0;for(c=1;c<=a;c++)if(a%c==0)b=b+1;***①if(a%b==0)***②}}printf("\ncount=%d",count);}{count++;四、程序填空:在程序中划横线处填上相应的语句。(6’x2,共12分)1.下面程序求[2,750]之间同构数的个数,请将程序补充完整,并给出正确结果,填入相应窗口。同构数是:一自然数平方的末几位与该数相同时,称此数为自构数,例如:5*5=25,则称5为自同构数。程序:#include<conio.h>#include<stdio.h>#include<math.h>main(){longcount,n,m,s,k;count=0;for(___________

温馨提示

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

评论

0/150

提交评论