浙江理工大学 C程序设计试卷13_第1页
浙江理工大学 C程序设计试卷13_第2页
浙江理工大学 C程序设计试卷13_第3页
浙江理工大学 C程序设计试卷13_第4页
浙江理工大学 C程序设计试卷13_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

PAGE浙江理工大学C程序设计试题(十三)一、单选题(每题2分,共20分)1、若有定义:intx,y;chara,b,c;并有以下输入数据(此处<CR>代表换行符,u代表空格):1u2<CR>AuBuC<CR>则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:_(1)__[A]scanf(“x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();[B]scanf(“%d%d”,&x,&y);a=getchar();b=getchar();c=getchar();[C]scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);[D]scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,&b,&c,&c);2、若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是:(2)[A]以上两处的*p含义相同,都说明给指针变量p赋值[B]在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元[C]语句“*p=r;”把变量r的值赋给指针变量p[D]语句“*p=r;”取变量r的值放回r中3、以下说法正确的是:(3)[A]输入项可以是一个实型常量,如:scanf(“%f”,3.5);[B]只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);[C]当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2f”,&d);[D]当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);4、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为:(4)[A]5[B]6[C]7[D]8#include<stdio.h>intfunc(charstr[]){intnum=0;while(*(str+num)!='\0')num++;return(num);}voidmain(){charstr[10],*p=str;gets(p);printf("%d\n",func(p));}5、若有以下定义:chara;intb;floatc;doubled;则表达式a*b/d-c值的类型为:(5)[A]float[B]int[C]double[D]char6、下列可作为C语言赋值语句的是:(6)[A]x=3,y=5[B]a=b=6[C]i--;[D]y=int(x);7、给出以下定义:charx[]=“abcdefg”;chary[]={'a','b','c','d','e','f','g'};则正确的叙述为:(7)[A]数组x和数组y等价[B]数组x和数组y的长度相同[C]数组x的长度大于数组y的长度[D]数组x的长度小于数组y的长度8、以下叙述中不正确的是:(8)[A]在不同的函数中可以使用相同名字的变量[B]函数中的形式参数是局部变量[C]在一个函数内定义的变量只在本函数范围内有效[D]在一个函数内的复合语句中定义的变量在本函数范围内有效9、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是:(9)[A]k=P1-P2;[B]P2=k;[C]P1=P2;[D]k=*P1*(*P2);10、非法的转义字符是:(10)[A]‘\t’[B]‘\018’[C]‘\n’[D]‘\xaa’二、程序填空题(阅读以下程序说明和相应程序,将空格补充完整。每小题2分,共30分)1、【程序说明】打印数字金字塔,金字塔层数由用户输入控制(1~9层)。要求金字塔最下面一行的第一个字符紧贴屏幕左侧输出。如输入6,则输出的金字塔如下图。运行示例:【程序代码】#include<stdio.h>voidmain(){inti,j,n;printf("输入金字塔层数:\n");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;(11);j++)(12);for(j=0;(13);j++)printf("%d",i);(14);}}【选项】(11)[A]j<=n[C]j<=n-i[B]j<=n-1[D]j<n-i(12)[A]printf("");[C]printf("\t");[B]printf("\n");[D]printf("\b");(13)[A]j<=2*i-1[C]j<2*i-2[B]j<=2*i-2[D]j<=2*i(14)[A]printf("");[C]printf("\t");[B]printf("\n");[D]printf("\b");2、【程序说明】随机产生20个100~300之间的整数,选出其中能被3或能被5整除的数,并把它们从小到大排序后按每行5个数输出。运行示例:【程序代码】#include<stdio.h>#include<stdlib.h>#include<time.h>voidmain(){inti,j,k,a[20],b[20],temp,(15);srand(time(NULL));printf("原始数据:\n");for(i=0;i<20;i++){a[i]=rand()%201+100;if((16)){n=n+1;b[n]=a[i];}if(i%5==0)printf("\n");printf("%-5d",a[i]);}printf("\n上述数据中能被3或5整除的数从小到大排序后:\n");for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if((17))(18);}if(k!=i){temp=b[k];b[k]=b[i];b[i]=temp;}}for(i=0;i<n;i++){if(i%5==0)printf("\n");printf("%-5d",b[i]);}printf("\n");}【选项】(15)[A]n[C]n=1[B]n=0[D]n=-1(16)[A]a[i]%3==0||a[i]%5==0[C]a[i]%3=0&&a[i]%5=0[B]a[i]%3==0&&a[i]%5==0[D]a[i]%3=0||a[i]%5=0(17)[A]b[k]>b[i][C]b[k]>b[j][B]b[k]<b[j][D]b[i]>b[j](18)[A]k=j[C]i=j[B]k=i[D]j=k3、【程序说明】从输入的字符串中找出特定的字符(由用户输入),并统一替换成另一个字符(也由用户输入)。运行示例:【程序代码】#include<stdio.h>#include<string.h>voidmain(){inti;charx,y,a[100];printf("请输入一个句子(不超过80个字母):\n");gets((19));printf("请输入一个欲被替换的字母:\n");(20);getchar();printf("输入一个欲替换成的字母:\n");scanf("%c",&y);for(i=0;(21);i++)if((22))a[i]=y;printf("上述句子中的字母%c被替换成字母%c后:\n",x,y);(23)}【选项】(19)[A]a[][C]a()[B]a[100][D]a(20)[A]getchar(x);[C]x=getchar();[B]scanf(“%s”,x);[D]scanf(“%c”,x)(21)[A]a[i]!=\0[C]i<strlen(a[100])[B]i<strlen(a[])[D]a[i]!=’\0(22)[A]a[i]!=x[C]a[i]==x[B]a[i]=x[D]a[i]!=’\0(23)[A]

printf(“%s\n”,a[100]);[C]putchar(a);[B]printf(“%c”,a);[D]puts(a);4、【程序说明】输入三个整数,按由小到大的顺序输出这三个数。【程序代码】#include<stdio.h>voidswap((24)){inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;scanf("%d,%d,%d",&a,&b,&c);if(a>b)swap(&a,&b);if(a>c)swap(&a,&c);if(b>c)swap(&b,&c);printf("%d,%d,%d",a,b,c);}【选项】(24)[A]int*pa,*pb[C]double*pa,*pb[B]int*pa,int*pb[D]double*pa,double*pb5、【程序说明】将两个字符串连接起来。【程序代码】#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\nInputthefirststring:");scanf("%s",s1);printf("\nInputthesecondstring:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')(25);s1[i]='\0';printf("\nNewstring:%s",s1);}【选项】(25)[A]s1[i]=s2[j][B]s1[i++]=s2[j++][C]s1[i]=s2[j++][D]s1[i++]=s2[j]三、程序阅读题(阅读下列程序,写出运行结果,每小题2分,共20分)1、【程序代码】#include<stdio.h>intstring_length(chars[]){inti=0;while(s[i]!='\0')i++;returni;}voidmain(){charstring1[]="testing";charstring2[]={'t','e','s','t','\0'};intj=0;j=string_length(string1);printf("thelengthofthefirststringis\n%d\n",j);j=string_length(string2);printf("thelengthofthesecondstringis\n\%d\n",j);}【选项】(26)程序运行时,第二行输出________(26)_________[A]6[B]7[C]8[D]9(27)程序运行时,第四行输出_______(27)_________[A]4[B]5[C]6[D]72、【程序代码】#include<stdio.h>#include<math.h>voidmain(){intn,s=0;scanf("%d",&n);n=abs(n);while(n!=0){s=s+n%10;n=n/10;}printf("%d\n",s);}【选项】(28)程序运行时,若输入1234,则输出____(28)_____[A]123[B]12[C]1[D]10(29)程序运行时,若输入-1280,则输出____(29)_____[A]11[B]-128[C]-12[D]–13、【程序代码】#include<stdio.h>voidmain(){inta[]={5,8,7,6,2,10,3};inty,z,*p=&a[1];y=(*--p)++;printf("%3d\n",y);.printf("%3d\n",a[0]);}【选项】(30)程序运行时,第一行输出______(30)__________[A]5[B]8[C]7[D]6(31)程序运行时,第二行输出______(31)__________[A]7[B]6[C]2[D]104、【程序代码】#include<stdio.h>#include<malloc.h>#defineformat1"%d,%d\n"#defineformat2"%d,%d"voidmain(){inta,b,x,y;intf1(int,int),f2(int*,int*);scanf(format2,&a,&b);x=f1(a,b);printf(format1,a,x);y=f2(&a,&b);printf(format1,a,y);}intf1(inta,intb){staticintx;inty=0;x=x+a+b;y=y+x--;printf(format1,x,y);returny;}intf2(int*a,int*b){intx=0,*y=(int*)malloc(sizeof(y));*y=*a;*a=*b;*b=*y;x=x

温馨提示

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

评论

0/150

提交评论