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

下载本文档

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

文档简介

C语言程序设计一、单选题(共30题)1、一个C语言程序总是从()开始执行。A、主过程B、主函数C、子程序D、主程序考生答案:B2、下列属于C语言合法的字符常量的是()。A、‘\85'B、"n”C、‘\t'D、“\0”考生答案:B3、若w=4,x=3,y=2,z=1,则条件表达式wvx?w:yvz?y:z的结果为()A、4B、3C、2D、1考生答案:B4、判断char型变量ch为数字的正确表达式是()A、ch>="0"&&chv="9"B、ch>='0'&&chv=9C、'0'<ch<'9'D、ch>='0'||chv=9考生答案:B5、分析以下程序,下列说法正确的是()intx=5,a=3,b=0;if(x=a+b)printf("tttt\n");elseprintf("kkkk\n");A、有语法错,不能通过编译B、通过编译,但不能连接C、输出ttttD、输出kkkk考生答案:C6、下列程序段执行后k值为()intk=0,i,j;for(i=0;iv5;i++)for(j=0;j<3;j++)k=k+1;A、3B、5C、15D、以上都不对考生答案:C7、对以下说明语句的正确理解是()inta[10]={6,7,8,9,10};A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4]C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以此语句不正确考生答案:B8、当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值考生答案:B9、若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为3的表达式是()。A、*p+3B、*(P+3)C、*p+=2D、P+2考生答案:C10、以下程序输出结果为()。char*str[]={"zhao","qian","sun",”li"};inti;for(i=0;iv4;i++)printf("%c",str[i][0]);A、zqslB、zhaoqiansunliC、zhaoD、以上都不对考生答案:A11、下面四个选项中,均是不合法的用户标识符的选项是()A、BA、x_0、doB、float、1a0、_YC、x-y、goto、123D、_123、tmp、CHAR考生答案:C12、下面正确的字符串常量是()A、'a'B、'376'C、"\\n"D、678考生答案:C13、下面哪个式子在a为奇数时结果为假()A、a%2==1B、!(a%2==0)C、!(a%2)D、a%2考生答案:C14、能表示条件0<x<100的表达式是()A、Ov=xv=1OOB、x>=0,xv=100C、0<x<100D、x>=0&&xv=100考生答案:D15、存储字符串"\\\'abc\376嚅要的字节数是()A、13B、11C、7D、6考生答案:C16、程序段如下,则以下说法中正确的是()intk=-5;while(k=0)k=k+1;A、while循环执行5次B、循环体语句一次也不执行C、循环是无限循环D、循环体语句执行一次考生答案:B17、对字符串"Boy"进行完整赋值的操作是()A、chars[3]={'B','o','y'};B、chars[]="Boy";C、chars[3]={"Boy"};D、chars[3];s="Boy";考生答案:B18、关于函数参数,说法正确的是()A、实参与其对应的形参各自占用独立的内存单元B、实参与其对应的形参共同占用一个内存单元C、只有当实参和形参同名时才占用同一个内存单元D、形参是虚拟的,不占用内存单元考生答案:A19、设有如下的程序段,执行程序段后,*(ptr+5)的值为()charstr[]="china";char*ptr;ptr=str;A、'o'B、'\0'C、不确定的值D、'o'的地址考生答案:B20、若有以下结构体定义,则正确的引用或定义是()structexample{intx;inty;}v1;A、example.x=10;B、examplev2.x=10;C、structv2;v2.x=10;D、structexamplev2={10};考生答案:D21、以下()运算能从变量x中取得十进制个位上的数字A、x/10B、x%10C、x*10D、/x考生答案:B22、字符串"\\"123"\"的长度是()。A、13B、11C、8D、7考生答案:D23、与k=n++完全等价的表达式是()A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1考生答案:A24、下述for循环语句()inti,k;for(i=0,k=-1;k=2;i++,k++)printf("****");A、判断循环结束的条件非法B、是无限循环C、只循环一次D、一次也不循环考生答案:B25、以下不能正确赋值的是()A、chars1[10];s1="test";B、chars2[]={'t','e','s','t'};C、chars3[20]="test";D、chars4[4]={'t','e','s','t'};考生答案:A26、下面程序用于输出数组中的最大值,则程序段中空白处应是()inta[5]={3,2,5,6,4},*p,*s;for(p=a,s=a;p-av10;p++)if()s=p;printf("maxis%d”,*s);A、*sv*pB、svpC、p-a>p-sD、a[s]va[p]考生答案:A27、一个函数的返回值由()确定。A、return语句中的表达式B、系统默认的类型C、调用函数的类型D、被调用函数的类型考生答案:D28、程序段的输出是()intx=2,y=-1,z=2;if(xvy)if(y<0)z=0;elsez+=1;printf(“%d\n”,z)A、2B、3C、0D、以上都不对考生答案:A29、C语言中,int型数据在内存中的存储形式是()A、ASCII码B、原码C、反码D、补码考生答案:D30、若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf("x=%d,%f",&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应是()。A、x=10,66.6v回车〉B、1066.6v回车〉c、10v回车>66.6v回车〉D、x=10v回车>66.6v回车〉考生答案:A二、判断题(共30题)31、表达式5/2+5.0/2+7%6的值为5.5。考生答案:正确32、定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。考生答案:错误33、在C语言中,运算符!比&&的优先级高。考生答案:正确34、int*f();表示返回一个整型指针的函数。考生答案:正确35、在调用一个函数的过程中又出现直接或间接调用该函数本身,称为函数的递归调用。考生答案:错误36、结构体的成员不能是结构体变量。考生答案:错误37、C语言库函数fgets(str,n,fp)的功能是从文件fp中读取n个字符串存入str指向的内存。考生答案:错误38、下面程序段运行时输出结果是:01524inti=0,a[10];for(i=0;iv=9;i++)a[i]=i*3;printf(”%d%d%d",a[0],a[5],a[8]);考生答案:正确39、下面程序段运行时输出结果是:4fun(char*s)4343、{char*p=s;while(*p)p++;return(p-s);}voidmain(){char*str="abcd";inti;i=fun(str);printf("%d",i);}考生答案:正确40、.该程序运行结果是:middlevoidmain(){charx=‘B';switch(x){case‘A':printf("good”);case‘B':printf("middle");caseC:printf("fail”);default:printf("othe广);}}考生答案:错误41、设inta=12;则表达式a/=a+a的值是0.5。。考生答案:错误42、C程序执行的入口是main()函数,所以main函数必须放在程序的开头。。考生答案:错误若有ints[4]={1,2,3,4};,则s[s[2]-2*s[0]啲值是4。考生答案:错误44、strlen("china")的值为5。考生答案:正确45、continue语句不可用于循环语句中。考生答案:错误46、C语言中以w+方式打开文件后,可执行的文件操作是可任意读写。考生答案:错误47、在位运算中,操作数每左移两位,则结果相当于操作数乘以2。考生答案:正确48、下面程序段运行时输出结果是:-5,-12,-7voidsub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d\n",a,b,c);}考生答案:正确49、下面程序段运行时输出结果是24intf(intn){ints;if(n==1||n==0)s=1;elses=n*f(n-1);returns;}voidmain(){printf("%d",f(4));}考生答案:正确50、该程序运行结果是:3voidmain(){intx=1,y=1,z=10;if(z<0)if(y>0)x=3;elsex=5;printf(”%d",x);}考生答案:错误51、C语言中,运算符的优先级最小的是逗号运算符。。考生答案:正确52、在定义函数时,函数名后面的括号中的变量名称为实参。考生答案:错误53、当用户定义一个结构体变量时,系统分配给它的内存为各成员所需内存的和。考生答案:正确54、若有定义inta[3][5];则排列在数组中的第3个元素是a[1][3]。考生答案:错误55、若x=5,y=5,则x&y的结果是5。考生答案:正确56、strcmp("how","How")的值>0。考生答案:正确57、函数rewind的作用是使位置指针自动移至下一个字符位置。考生答案:错误58、下面程序段运行时输出结果是:135voidmain(){inta[2][3]={1,3,5,7,9,11};intm,*ptr;ptr=&a[0][1];m=(*ptr)*(*(ptr+1))*(*(ptr+3));printf(”%d",m);}考生答案:正确59、下面程序段运行时输出结果是:1,62,63,6f(intx){staticinty=5;x++;y++;printf(”%d,%d",x,y);}voidmain(){inti;for(i=0;iv3;i++)f(i);}考生答案:错误60、下面程序段运行时输出结果是2intf(intn){ints;if(n==1||n==2)s=1;elses=n-f(n-1);returns;}voidmain(){printf("%d",f(3));}考生答案:正确三、填空题(共12题)61、完成以下程序填空:输出100到1000之间既是奇数且能被13整除的数,并输出它们的和。#include<stdio.h>intmain(){TOC\o"1-5"\h\zinti,();for(i=100;i()1000;i++)if(i%2()0&&()==0){sum=sum+i;printf(”%d",());}printf("\nThesumis:%d\n",sum);return0;}考生答案:sum=0<!=i%13i62、已知5个整数,已经由大到小排好序,现输入一个数,将其插入到该数组适当位置,使其仍然有序。#includevstdio.h>intmain(){inta[6]={20,15,12,8,6};inti,k;scanf(“%”,&k);if(kv=a[()])a[5]=k;else{for(i=();i>=0;i--)if(k>a[i])a[()]=a[i];else();a[()]=k;}for(i=0;iv6;i++)printf("%d”,a[i]);return0;}考生答案:44i+1breaki+163、一个班级有10个学生,参加4门课考试,求每门课的最高分,并输出每个学生的各门课成绩和每门课的最高分。#ineludevstdio.h>intmain(){int(),b[4],i,j;for(i=0;i<10;i++)for(j=0;j<4;j++)seanf("%d",&a[i][j]);for(j=0;j<();j++){b[j]=a[()][]];for(i=1;iv10;i++)if(b[j]va[i][j])b[j]=a[i][j];}for(i=0;i<10;i++){for(j=0;jv4;j++)printf("%5d",a());printf("\n");}for(j=0;jv();j++)printf("%5d",b[j]);return0;}考生答案:al0[4]40[i][j]464、编一函数mystrcat,将两个字符串连接起来(即实现字符串连接函数strcat()的功能)。在main函数内实现对该函数的调用,即输入任意两个字符串,调用该函数,并把连接后的字符串输出。#include<stdio.h>voidmystrcat(chara[],charb[]){inti,j;for(i=0;a[i]()'\0';i++);for(j=0;b[j]!='\0';j++){a[i]=b[j];();}a[()]='()';}intmain(){chara[80],b[30];gets(a);gets(b);mystrcat(());puts(a);puts(b);return0;}考生答案:匸i++Ia,b65、一只蜗牛想要爬到树顶看看世界,地面到树顶m米,蜗牛白天能向上爬a米,晚上会滑下b米,那么这只小蜗牛在第几天能爬到树顶?请编写程序,输入三个整数m、a、b(要求m>a>b>=1),计算并输出第几天爬到树顶。#include<stdio.h>intmain(){intm,a,b,i,n;scanf("%d%d%d",&m,&a,&b);TOC\o"1-5"\h\zi=();n=a;do{n=();();n=n+a;}while(n<());printf("第%4天爬到顶",());return0;}考生答案:1n-bi++mI66、有10个学生参加计算机等级考试,要求按由低到高的顺序排列成绩(采用起泡法排序)。#ineludevstdio.h>intmain(){inta[10];intprintf("input10numbers:\n“);for(i=0;iv10;i++)scanf("%d",()a[i]);for(j=0;j<();j++)for(i=0;i<();i++)if(a[i]>a[()]){t=a[i];a[i]=();a[i+1]=t;}printf("\nthesortednumbers:\n“);for(i=0;i<10;i++)printf("%d”,a[i]);printf("\n");return0;考生答案:&99-ji+1a[i+1]67、有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a表示要删去所有的字符a)。#ineludevstdio.h>intmain(){charstr1[100],str2[100];chareh;inti=0,k=0;while((st门[i]=getchar())!='\n')i++;st门[i]='\0';TOC\o"1-5"\h\zscanf("%c",());for(i=0;str1[i]!='()';i++)if(str1[i]()ch){()=str1[i];k++;}str2[k]='\0';printf("\n%s\n",());return0;}考生答案:&ch\0!=str2[k]str268、打印出1-100之间的全部素数(要求编写两个函数,一个命名为prime,用于判断一个数是否是素数,另一个是main函数,在main函数中调用该函数实现打印1-100之间的全部素数)。intprime(()){inti;for(i=2;ivm;i++)if(m%i==())return();return1;}intmain(){inti;for(i=2;iv100;i++)if(())printf("%d",());return0;}考生答案:intm00prime(i)I69、求1!+2!+3!+・・・+100!。#ineludevstdio.h>intmain(){inti;()t,s;i=();t=i;s=t;for(i=2;i()100;i++){t=t*();s+=t;}printf("%lf",());return0;}考生答案:double1<Is70、有一个3x4的矩阵,编程求出其中值最大的那个元素的值,以及其所在的行号和列号。#ineludevstdio.h>intmain(){int(),i,j,max,x,y;for(i=0;i<3;i++)for(j=0

温馨提示

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

评论

0/150

提交评论