




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单项选择题1、能将高级语言源程序转换成目标程序是(C)。编译程序基本功效是把源程序翻译成目标程序 A)调试程序 B)解释程序 C)编译程序 D)编辑程序2、设有以下定义:intx=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y));结果是(D)。 A)1B)0 C)4D)33、若已定义x和y为整型,则表示式:x=1,y=x+3/2值是(B)。P56 A)1 B)2 C)2.0 D)2.54、C语言中(B)。P115 A)不能使用do-while语句组成循环。 B)do-while语句,当while语句中表示式值为零时结束循环。 C)do-while语句,当while语句中表示式值为非零时结束循环 D)do-while语句必须用break语句才能退出循环5、设有定义inta=3;,则执行语句a+=a-=a*a后,变量a值是(C).P64(a-a*aa=3-3*3a=-6a=a+aa=-6+(-6)a=-12)A)3B)0C)-12 D)96、以下程序输出结果是(C)。p93#include<stdio.h>main() {inta,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } A)21 B)1,-1C)2,1D)2-17、以下程序输出结果是(D)。 #include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str)); }求字符串长度,strlen(
)参数必须是char* A)12 B)7 C)11 D)68、以下for循环(A)。 for(x=0,y=0;(y!=123)&&(x<4);x++);A)执行4次B)是无限循环C)执行3次D)循环次数不定9、以下程序段输出结果是(A) chara[]=”Basic”;char*p=a;printf(“%s”,p); A)Basic B)B C)asic D)不确定10、以下说法中正确是(C)。A)C语言程序总是从第一个定义B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中main()函数必须放在程序开始部分11、下述对C语言字符数组描述中错误是(C) A)字符数组能够存放字符串 B)字符数组中字符串能够整体输入、输出 C)能够在赋值语句中经过赋值运算符“=”对字符数组整体赋值 D)不能够用关系运算符对字符数组中字符串进行比较12、C语言中最简单数据类型包含(B)A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型13、阅读程序: #include<stdio.h> #defineSUB(X,Y)(X)*Y main() {inta=3,b=4; printf("%d\n",SUB(a++,b++));} 程序输出结果是(B) A)15 B)12C)16 D)2014、为表示关系x≥y≥z应使用C语言表示式(A) A)(x>=y)&&(y>=z)B)(x>=y)and(y>=z)C)(x>=y>=z)D)(x>=y)&(x>=y)15、以下程序运行结果是(A)Main(){intn=0;while(n++<=1)printf(“%3d”,n);printf(“%3d\n”,n);}A)123B)321C)012D)21016、设有以下定义:char*aa[2]={“abcd”,”ABCD”};则以下说法中正确是(D) A)aa数组元素值分别是”abcd”和”ABCD”B)aa是指针变量,它指向含有两个数组元素字符型一维数组C)aa数组两个元素分别存放是含有4个字符一维字符数组首地址D)aa数组两个元素中各自存放了字符’a’和’A’地址。17、设有以下定义: structsk {inta;floatb;}data,*p; 若有p=&data;,则对data中a域正确引用是(p->a)(A) A)(*p).aB)(*p).data.aC)p.data.aD)p->data.a18、设有说明int(*ptr)[M];其中标识符ptr是(C) A)M个指向整形变量指针 B)指向M个整形变量函数指针 C)一个指向具备M个整形元素一维数组指针 D)具备M个指针元素一维指针数组,每个元素都只能指向整形变量19、阅读程序,程序输出结果为(C)。intx=3;do{printf(“%3d”,x-=2);}while(!(--x));A)1 B)30C)1-2 D)死循环20、设有10个数据进行冒泡排序,最少进行比较次数为(C)。 A)0B)10C)9D)121、设有语句chara=’\n’;,则变量a(A)。 A)包含1个字符 B)包含2个字符 C)包含3个字符D)说明不正当22、若有定义:doublex,y;则表示式:x=1,y=x+3/2值是(C)。 A)1 B)2 C)2.0 D)2.523、有以下程序:(注意:ch[0]在低字节,ch[1]在高字节。) #include<stdio.h> unionpw{inti;charch[2];}a;main(){a.ch[0]=0;a.ch[1]=13;printf("%d\n",a.i); }程序输出结果是(C)。 A)13 B)14 C)3328 D)32824、以下程序输出结果是(B)。#include<string.h>main(){charstr[12]={'a','b','c','d','f','g',’f’};printf("%d\n",strlen(str));} A)12 B)7 C)11 D)625、设有以下语句: structst{intn;structst*next;};staticstructsta[3]={{5,&a[1]},{7,&a[2]},{9,'\0'}},*p; p=&a[0];则表示式(B)值是6。 A)p++->n B)++(p->n) C)(*p).n++ D)p->n++26、对于程序段floatf1(inta){intb;……}main(){intm,n;m=f1(n);……}charf2(intx,inty){inta;……}变量m,n作用范围是(B)(A)整个程序段(B)main函数(C)main函数和f2函数(D)mian函数和f1函数27、若p1、p2都是指向整型指针,p1已经指向数量x,要使p2也指向x,正确是(A)(A)p2=p1;(B)p2=**p1;(C)p2=&p1;(D)p2=*p1;28、算术运算符,赋值运算符和关系运算符运算优先级按从高到低依次为(B)(A)算术运算、赋值运算、关系运算(B)算术运算、关系运算、赋值运算(C)关系运算、赋值运算、算术运算(D)关系运算、算术运算、赋值运算29、C语言中,运算对象必须是整型数运算符是(A) A)% B)/ C)%和/ D)*30、若数组定义为inta[10];则以下哪个表示式是错误?(A)(A)*a(B)a(C)&a(D)++a31、表示式10%2值是(A)(A)0(B)1(C)5(D)5.032、设有说明int(*ptr)[M];其中标识符ptr是(C) A)M个指向整形变量指针 B)指向M个整形变量函数指针 C)一个指向具备M个整形元素一维数组指针 D)具备M个指针元素一维指针数组,每个元素都只能指向整形变量33、初始化一维数组a正确语句是(C)(A)inta[10]=(0,0,0,0,0);(B)inta[10]={};(C)inta[]={10};(D)inta[10]={[10*1]};34、以下程序执行后输出结果是(A) intd=1;fun(intp){intd=5;d+=p++;printf("%d",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);} A)84 B)96 C)94 D)8535、函数调用语句“f((e1,e2),(e3,e4,e5))”中参数个数是(B)(A)1(B)2(C)3(D)536、执行以下语句中,sum变量值是(
B
)
intI,sum=0;
for(i=0;i<10;i++,sum+=i);(A)45(B)55(C)0(D)编译错误37、以下c语言函数申明中,不正确是(
C
)(A)
voidfun(intx,inty);(B)
fun(intx,inty);(C)
intfun(intx,y);(D)
char*fun(char*s);38、以下关于typedef叙述中错误是
(
A
)(A)
用typedef能够增加新类型
(B)
用typedef能够定义各种类型名,但不能用来定义变量(C)
用typedef只是将已经有类型用新标识符来代表(D)
使用typedef有利于程序通用和移植39、假设指针p已经指向某个整型变量x,则*p相当于(
C
)(A)
&x(B)
&p(C)
x(D)
*x40、组成C语言程序是(B)(A)过程(B)函数(C)子程序(D)主程序和子程序41、不用第三个变量,将变量a和b值进行交换操作是(B)(A)a+=b;b-=a;a-=b;(B)a+=b;b=a-b;a-=b;(C)b-=a;a-=b;a-=b;(D)b-=a;a=b-a;a+=b;42、对do-while语言错误说法是(C)(A)可组成多重循环结构(B)循环次数不可能为0(C)循环次数可能为0(D)先执行后判断43、函数调用时,若实参是一个数组名,则向形参传递是(C)(A)数组长度(B)数组每一个元素地址(C)数组首地址(D)数组元素值
二、填空题1、下面函数要求用来求出两个整数之和,并经过形参传回两数相加之和值。 intadd(intx,inty,intz){z=x+y;}2、以下定义和语句,则使指针P指向值为17数组元素表示式是P+3。inta[10]={19,23,44,17,37,28,49,36},*p; p=a;3、设有定义:inti,j,k;则执行语句for(i=0,j=10;i<=j;i++,j--)k=i+j;后,k值为10。4、以下两条if语句可合并成一条if语句为。 if(a<=b)x=1; elsey=2;if(a>b)printf("y=%d\n",y); elseprintf("x=%d\n",x);5、C语言程序函数之间可经过函数名返回数据外,还可经过函数指针返回数据(P261)定义全局变量,传递地址运算进行。6、int*p[4]意义是它表示指针数组,int(*p)[4]意是表示p是一个指针变量,它指向包含4个整形元素一维数组数组指针(p28)。7、设有以下定义和语句: inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;则*(*(p+1)+1)值为_____40_________。8、若有以下定义和语句: struct{intx;chary;intz;}a,*b; b=&a;则sizeof(a)值是__5__,而sizeof(b)值是2。9、以下程序输出是______49___。 main() {inta[10]={19,23,44,17,37,28,49,36},*p;p=a;printf("%d\n",(p+=3)[3]); }10、若有以下说明和定义语句,则变量w在内存中所占字节数是34,unionaa {floatx,y;charc[6];}; structst{unionaav;floatm[5];doubleave;}w;11、以下函数功效是:把两个整数指针所指存放单元中内容进行交换。请填空。 exchange(int*x,int*y) {intt; t=*y;*y=*x;*x=t;}12、设有字符串STR,以下程序段用于确定其长度。{intnum=0;while(STR[num]!=’\0’)num++;return(num);}13、设单链表结点含两个域:data是数据域,next是指针域,请填空。if(a<=b){x=1;printf(“x=%d\n”if(a<=b){x=1;printf(“x=%d\n”,x);}else{y=2;printf(“x=%d\n”,y)}14、下面程序输出是4。 main() {inta[]={1,2,3,4},*p=a,i;for(i=0;i<4;i++)a[i]=*(++p);printf(“%d”,a[2]); }15、以下程序运行结果是123。Main(){intn=0;while(n++<=1)printf(“%3d”,n);printf(“%3d\n”,n);}16、设for(k=0;k<10;k++)++k;则该循环共执行5次。17、结构化程序由三种基本控制结构组成,它们分别是次序结构、选择结构和循环结构。18、初始化值是0.618双精度变量a定义形式为doublea=0.618。19、若有以下定义和语句:struct{intx;chary;floatz;}a,*b;b=&a;则sizeof(a)值是__7__,而sizeof(b)值是2。20、语句printf(“\%d%d”,123);执行后将输出:123285。21、以下程序段输出是BCD。staticchara[]=”ABCD”;char*p=a;printf(“%s”,++p);22、以下函数用于求出一个2x4矩阵中最小值。Max_value(arr)Intarr[][4];{intI,j,max=arr[0][0];for(I=0;I<2;I++)for(j=0;j<4;j++)if(arr[I][j]>max)max=a[I][j];return(max);}23、设单链表结点含三个域:data1和data2是数据域,next是指针域,请填空。structlink{intdata1;chardata2;structlink*next;}node;24、字符串″ABCD\t\\\123″长度是7。25、表示式a=1,a+1,a++值是2。27、被调函数在执行结束时,这个函数中定义静态储存类型变量不被释放。28、设inta[2][3]={{2},{3}};则数组元素a[1][0]值为3。29、以下程序
intx=3;
do{printf(″%d″,--x);}while(!x);循环执行次数是1。30、若函数定义为intdata(
)
{
floatx=9.9;return(x);
}则调用后函数返回值是9。十四、判断题1、函数能够分为两个部分:函数说明部分和函数体。(√)2、函数定义和函数调用均能够嵌套。(×)3、在C语言中,当我们定义了数组inta[5];则数组元素下标从1到5。(×)4、在C语言中,“A”占两个字节,而‘A’占一个字节。(√)5、程序中定义整型变量初值都为0。(×)6、若有说明intc;则while(c=getchar());是错误C语句。(×
)7、C语言中,共用体类型变量在程序运行期间,全部组员都在内存中。
(×
)8、在一个函数内部复合语句中定义变量,只在该复合语句范围内有效。
(
√
)9、C语言程序中,一个文件中函数能够引用存放在另一个文件中函数和变量。
(
√
)10、使用continue和break语句,都能够使得C程序执行直接从循环中跳出。
(
×
)十五、程序改错题从键盘输入m和n两个整数,输出时先输出较大者,后输出较小者。main(){intm,n,*pm=m,*pn=n,*p;if(a<b){*p=*pm;*pm=*pn;*pn=*p;}printf("max=%d,min=%d\n",a,b");}#include<stdio.h>voidmain(){int*p1,*p2,m,n;scanf(“%d,%d”,&m,&n);p1=&m;p2=&n;if(m<n){p1=&n;p2=&m;}printf(“m=%d,n=%d\n”,a,b);printf(“max=%d,min=%d\n”,*p1,*p2);}三、阅读以下程序,其功效是求出数组S中最大元素,请简述其算法基本思想,画出程序流程图;修改该算法,使其更高效。voidmain()voidmain(){inti,m,s[10]={87,98,87,54,85,75,98,45,87,96};for(i=1;i<10;i++)if(s[i]>s[0]){m=s[0]; s[0]=s[i]; s[i]=m; }printf("%d",s[0]);}{ints[10],I,m;for(I=0;I<10;I++)scanf(“%d”,&s[I]);for(I=1;I<10;I++)if(s[I]>s[0]){m=s[0];s[0]=s[I];s[I]=m;}printf(“%d”,s[0]);}main(){ints[10],i,m;for(i=0;i<10;i++){scanf("%d",&s[i]);if(s[i]>s[0]){m=s[0];s[0]=s[i];s[i]=m;}}printf("%d",s[0]);}四、简述以下程序功效,画出程序流程图,并对其进行修改,使其符合结构化程序要求。main(){intn;main(){intn;for(n=100;n<=200;n++)if(n%3!=0)printf("%d\n",n);}输出100~200中不能够被3整除数。main(){intn;for(n=100;n<=200;n++){if(n%3==0)continue;printf(“%d”,n);}}main(){intn=1;main(){intn=1;while(n<=100){printf("%d\n",n++);}}输出1至100数。main(){intn=1;while(n<=200){if(n>100)break;printf(“%d”,n++);}}五、阅读以下程序:#include<stdio.h>intmain(void){inti;char*name[3]={"David","JaneWang","TomLee"};for(i=0;i<3;i++)printf("name[%d]=%s\n",i,name[i]);printf(“\n”);for(i=0;i<3;i++) printf("name[%d]=%c\n",i,name[i][0]);}原来输出:name[0]=Davidname[1]=JaneWangname[2]=TomLee请描述其执行结果;修改程序显示三个字符串("David","JaneWang","TomLee")首字符。六、设数组a中有10个整数(数据在函数main中产生),请设计一个函数把其中偶数存放到数组b中返回并输出。#include<stdio.h>main(){voidmod(inta[10],intb[10]);inta[10],i,b[10];printf("inputtendata:\n");for(i=0;i<10;i++){scanf("%2d",&a[i]);b[i]=1;}mod(a,b);printf("thenewdata:\n");for(i=0;i<10;i++){if(b[i]!=1)printf("%2d\n",b[i]);}}voidmod(inta[10],intb[10]){inti;for(i=0;i<10;i++){if(a[i]%2==0)b[i]=a[i];}}七、设有单向链表L,编程输出结点值,并删除第一个结点。(提醒:结点结构为:structnode{intdata;structnode*next;};)#include<stdio.h>#include<string.h>#defineNULL0structnode{intdata;structnode*next;};voidmain(){structnodea,b,c,*head,*p; a.data=10; b.data=11; c.data=12; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; printf("thedataofthelink:\n"); while(p!=NULL) {printf("%4d",p->data);p=p->next; } printf("\ndeletethefirstdata:\n"); head=&b; b.next=&c; c.next=NULL; p=head; while(p!=NULL) {printf("%4d",p->data); p=p->next; } }八、编程完成:函数main产生整型数组s[4][4]中数据;函数findmin求出数组s每列中最小元素行号;函数outdata输出每列最小元素及行号。#include<stdio.h>
main()
{ints[4][4]={{78,89,54,61},{87,65,74,75},{78,89,78,79},{51,97,98,3}};intmin[4],mini[4];
voidfindmin(ints[4][4],intmin[4],intmini[4]);
voidoutdata(intmin[4],intmini[4]);
findmin(s,min,mini);
outdata(min,mini);
}
voidfindmin(ints[4][4],intmin[4],intmini[4])
{inti,j;
for(i=0;i<4;i++)
{min[i]=s[0][i];
mini[i]=1;
for(j=0;j<4;j++)
if(min[i]>s[j][i])
{min[i]=s[j][i];
mini[i]=j+1;
}}}
voidoutdata(intmin[4],intmini[4])
{
inti;for(i=0;i<4;i++)
printf("min[%d]=%d\n",mini[i],min[i]);
}九、设有单向链表L,请设计函数查找链表中数据域值最大结点并返回其地址值。结点结构为:structnode{intdata;structnode*next;}。#include<stdio.h>
#include<string.h>
#defineNULL0
structnode
{
intdata;
structnode*next;
};
voidmain()
{structnodea,b,c,*head,*p,*max;
structnode*chzhao(structnode*head);
a.data=10;
b.data=11;c.data=12;
head=&a;a.next=&b;b.next=&c;c.next=NULL;
p=head;
printf("thedataofthelink:\n");
while(p!=NULL)
{printf("%p",p);
printf("%4d\n",p->data);
p=p->next;
}
max=chzhao(head);
printf("\ntheaddressof%dis:%p",max->data,max);
}structnode*chzhao(structnode*head)
{structnode*p,*max;
p=head;max=p;
for(;p!=NULL;p=p->next)
if(max->data<p->data)
max=p;
returnmax;
}X(x<1)X(x<1)y=2x-1(1≤x<10)3x-11(x≥10)十、有一函数:#include<stdio.h>voidmain(){intx,y;scanf("%d",&x);if(x<1)y=x;elseif(x<10) y=2*x-1; else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经营资质协议书
- 用他人名字开店协议书
- 合伙人入股合同协议书
- 租赁用电协议书
- 联盟成员协议书
- 脱离亲子协议书
- 送养人和协议书
- 夫妻间房屋继承协议书
- 联营合作协议书
- 电影赞助商合同协议书
- 六年级下册科学复习心得分享会
- 婴幼儿喂养的正确方法
- 2025年广东省普通高中生物学业水平合格性考试综合测评卷(二)(含解析)
- 心脏康复基层指南
- 高考数学专项复习:极值点偏移与拐点偏移问题【七大题型】解析版
- 会计事务所退休会计师聘用合同
- 【MOOC】设计的力量-湖南大学 中国大学慕课MOOC答案
- 如何预防白血病科普
- 2025届江苏省南师附中高考数学考前最后一卷预测卷含解析
- GB/T 44770-2024智能火电厂技术要求
- 【苏教版数学】小学四年级下册1-4单元教案+教材分析
评论
0/150
提交评论