C语言程序填空题
- 格式:docx
- 大小:185.50 KB
- 文档页数:44
《C语言程序设计》模拟试卷十二一、填空题.(每题2分,共20分)1.C语句必须以号结束2.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是。
3.若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是.4.设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d, " );printf(“%d\n”, .);5.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 .6.有以下程序段int k=0while(k=1)k++;while 循环执行的次数是。
7.表达式a = 1,a + 1,a + + 的值是___________________。
8.设char string[]=″This_is_a_book!″;则数组的长度应是________________。
9.设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。
10.设有如下变量说明语句int a[8]={44,55,12,42,94,18,6,67},*p=a;则通过指针变量p引用值为18的表达式是____ ____。
11.执行下述程序#include <stdio.h〉int strlength(char a[],char b[]){int num=0,n=0;while (*(a+num)!='\0')num++;while (b[n]){*(a+num)=b[n];num++;n++;}return (num);}main(){char strl[81],str2[81],*p1=str1,*p2=str2;gets(p1);gets(p2);printf("%d\n”,strlength(p1,p2));}若从键盘输入qwertyabcd则输出结果是____ ___.二、单项选择题。
二、程序填空题(每空2分,共20分)1.下列程序是求100之内的能被7整除的自然数之和。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main( ){int sum;_(1) _;for(int i=1;__(2) _; i++)if(_(3) _)sum+=i;cout<<sum<<endl;}答案:_sum=0_ i<=100_ i%7==0__2 下面程序的功能是计算x n。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main( ){int n,x;cin>>x>>n;double y=1;for(int i=1;__(1) _; i++)_(2) _;cout<<y<<endl;}答案:i<n_ y=x*i3 下面程序是输出100内能被3整除且个位数是6的所有整数。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main(){int i,j;for(i=0; (1) ;i++){j=i*10+6;if( (2) )continue;elsecout<<j<<endl;}}答案:i<10 j%3!=04.下面程序运行后输出的结果为:** * ** * * * ** * * * * * *请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>#include<iomanip.h>void main(){int i,j,k ;for(i=1 ;i<=4 ;i++){for(j=1;j<20-3*i; (1) ) cout<<”“;for(k=1; (2) ; k++)cout<<setw(3)<<”*”;(3) ;} }答案:j++ k<2*i-1 cout<<endl5.下面程序运行后输出的结果为:1121123211234321请在横线处填入适当的语句,将程序补充完整。
《C语言程序设计》试题七 (1)一、填空题 (1)二、选择题 (2)三、判断题 (3)四、程序填空题 (4)五、阅读程序,写出下列程序段的结果 (5)六、编程题 (6)《C语言程序设计》试题七答案 (7)《C语言程序设计》试题七一、填空题1.在C语言程序设计中,正确的标识符是由____________________组成的。
2.设x=4,y=(++x)+(++x);那么y的值为_____,表达式执行后,变量x的值为_______。
3.一个变量的指针是指_____________________________________________。
4.能够构成一个数组,其元素满足的特点是__________________________________;那么,构成结构体的成员可以是_________________________________________。
5.下面运算符< % ++ = 按照优先级从高到低排列顺序为______________。
6.C程序设计中语句后的符号/*……*/ 所起作用是_________________________。
7.写出下面表达式的值3*5/7+7%3____________________ x=2 ; y=4; (x++)+y _____________________ 3+4>=7-10_____________________ 3>4 ? 3%2: 1 ___________________x=2,y=2;++x||++y_______________ x=3 ; x+=x-=2 _____________________二、选择题⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为()A.FILE B.RUN C.EDIT D.OPTION⑵.下列语句不具有赋值功能的是()A.a*=b B.x=1 C.a+b D.a++⑶.C语言程序中,当出现条件分支语句if~else时, else与()组成配对关系A.同一复合语句内部的if B.在其之前任意的ifC.在其之前未配对的最近的if D.首行位置相同的if⑷.下列数组定义方式不正确的语句是()A.char x[5]; B.char y[]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’};C. int x[10]={12,13,14,15}; D.int y[];⑸. 若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用int a[]={1,2,3,4,5},*p,i;p=a;A. *(a+2) B.a[p-3] C.p+2D.a+3⑹. 下列()表达式的值为真a=5; b=8; c=10; d=0A.a*2>8+2 B.a&&d C. (a*2-c)||d D.a-b<c*d⑺. 下列字符数组长度为5的是() A. char a[]={‘h’, ‘a’, ‘b’, ‘c’, ‘d’};B. char b[]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’, ‘\0’};C. char c[10]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’};D. char d[6]= {‘h’, ‘a’, ‘b’, ‘c’, ‘\0’ }⑻. 执行下列程序后,其结果为()int a[]={2,4,6,8,10,12}; *p;p=a;*(p+4) =2;printf(“%d,%d\n”,*p,*(p+4));A.0,10 B.0,2 C.2,10 D.2,2⑼.有下列结构体,对该结构体变量stu的成员项引用不正确的是()struct student{ int m;float n;} stu ,*p;A. stu.n B.p->m C.(*p).m D.p.stu.n ⑽.下列函数中不能用于对文件进行输入输出操作的是()A.fscanf( ) B.printf( ) C.fgetc( ) D. fputs( )三、判断题1.C语言程序设计可以对计算机硬件进行操作。
一、单项选择题(本大题共20题,每题2分,共40分)1.以下不是C语言的特点的是()A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2.以下不正确的C语言标识符是()A、ABCB、abcC、a_bcD、ab。
c3.一个C语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4.一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是()A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a'+i*f值的数据类型为()A、intB、floatC、doubleD、不确定6.在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7.有如下程序,输入数据:12345M678<cR>后(<CR〉表示回车),x的值是().#include<stdio。
h〉main(){intx;floaty;scanf(”%3d%f”,&x,&y);}A、12345B、123C、45D、3458.若有以下定义inta,b;floatx,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int (x);9.以下程序的执行结果是()#include〈stdio.h〉{inti=10,j=10;printf(”%d,%d\n”,++i,j——);}A、11,10B、9,10C、11,9D、10,910.巳知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio。
h>main(){charc1='A',c2='Y’;printf("%d,%d\n”,c1,c2);A、A,YB、65,65C、65,90D、65,8911.下列运算符中优先级最高的是()A、<B、十C、%D、!=12.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。
一、单项选择题(本大题共20题,每题2分,共40分)1.以下不是C语言的特点的是()A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2.以下不正确的C语言标识符是()A、ABCB、abcC、a_bcD、ab.c3.一个C语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4.一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是()A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为()A、intB、floatC、doubleD、不确定6.在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是()。
#include<stdio.h>main(){intx;floaty;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458.若有以下定义inta,b;floatx,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9.以下程序的执行结果是()#include<stdio.h>{inti=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910.巳知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911.下列运算符中优先级最高的是()A、<B、十C、%D、!=12.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
试卷编号:66所属语言:C语言试卷方案:平时练习-填空试卷总分:240分共有题型:1种━━━━━━━━━━━━━━━━一、填空共240题(共计240分)━━━━━━━━━━━━━━━━第1题(1.0分)题号:301已知 i=5,写出语句 a=i++; 执行后整型变量a的值是【1】.答案:=======(答案1)=======5第2题(1.0分)题号:476结构化程序中,有三种结构:顺序结构,【1】,循环结构.答案:====(答案1)= ====条件选择结构======或=====选择结构======或======分支结构第3题(1.0分)题号:473C程序中有且仅有一个【1】函数.答案:=======(答案1)=======主=========或=========main第4题(1.0分)题号:475程序流程图只有一个起点和【1】个终点.答案:====(答案1) ====1==或=====一=========或=========1个=========或===一个第5题(1.0分)题号:477一个用C语言编写的程序在运行时,如果没有发生任何异常情况,则只有在执行了【1】函数的最后一条语句或该函数中的return语句后,程序才会终止运行.答案:=======(答案1)=======主=========或=========main第6题(1.0分)题号:474C语言程序由【1】组成.答案:=======(答案1)=======函数第7题(1.0分)题号:300执行下列语句后,z 的值是【1】.int x=4,y=25,z=5; z=y/x*z;答案:=======(答案1)=======30第8题(1.0分)题号:298C语言表达式!(3<6)||(4<9)的值是【1】.答案:=======(答案1)=======1第9题(1.0分)题号:299设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是【1】.答案:=======(答案1)=======9第10题(1.0分)题号:485执行"printf("%d,%d",i,j,k,m);"后将在屏幕上输出【1】个整数.答案:=======(答案1)=======2第11题(1.0分)题号:480C语言中一个单精度浮点型数据占【1】个字节.答案:=======(答案1)=======4第12题(1.0分)题号:479已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【1】.答案:=======(答案1)=======f第13题(1.0分)题号:490已知有声明float d=1;double f=1;long g;和语句printf(" ",g=10+'i'+(int)d*f);,为了正确地以十进制形式输出printf参数表中第二个参数(表达式)的值,则在第一个参数中的下划线位置处应填写的格式转换说明符是【1】.答案:=======(答案1)=======%ld第14题(1.0分)题号:483在C语言的源程序中若出现常量"1L",则该常量的类型是【1】.答案:=======(答案1)=======长整型=========或=========long int第15题(1.0分)题号:481C语言中为整型数据(int)分配【1】个字节的存储空间.答案:=======(答案1)=======2第16题(1.0分)题号:491在TC中,语句序列int k=-1;printf("%u",k);的输出结果为【1】.答案:=======(答案1)=======65535第17题(1.0分)题号:482在Turbo C2.0系统中,若将实型常数1.5存储在内存中,它占用【1】个字节.答案:=======(答案1)=======8第18题(1.0分)题号:486C语言中,逻辑值"真"用【1】表示.答案:=======(答案1)=======1第19题(1.0分)题号:478整型变量x的值为23,语句"printf(″%o\\n″,x);"的输出结果为【1】.答案:=======(答案1)=======27\n第20题(1.0分)题号:484在C语言中,字符型数据在内存中以【1】码形式存放.答案:======(答案1)=======ASCII=========或=========美国标准信息交换第21题(1.0分)题号:489从变量的作用域角度分有全局变量和【1】.答案:=======(答案1)=======局部变量=========或=========局部第22题(1.0分)题号:488变量从存储的时间来分可分为【1】和动态变量.答案:=======(答案1)=======静态变量第23题(1.0分)题号:487只有在程序运行时才为【1】存储类型和register存储类型变量分配内存.答案:=======(答案1)======auto=========或=========自动第24题(1.0分)题号:492现有语句#define a 5+3,则表达式2*a的结果为【1】.答案:=======(答案1)=======13第25题(1.0分)题号:516s=3,s++,s; 这个语句执行完后,s的值为【1】.答案:=======(答案1)=======4第26题(1.0分)题号:525设有下面的程序段int x= 0,y=0;t=x&&++y; 执行语句后y的值为【1】.答案:=======(答案1)=======0第27题(1.0分)题号:512设int a=5,b=2;float c=32.8;,表达式b*(int)c%a的值为【1】.答案:======(答案1)=======4第28题(1.0分)题号:524设x,y,z均为int 型变量,请写出描述"x或y中有一个小于z"的表达式【1】.答案:=======(答案1)=======x<z||y<z第29题(1.0分)题号:514若已知a=10,b=20,则!a<b的值为【1】.答案:=======(答案1)=======1第30题(1.0分)题号:518表达式 a=3,a++,--a的值为【1】.答案:=======(答案1)=======3第31题(1.0分)题号:500C语言中逻辑值'真'用【1】表示.答案:=======(答案1)=======1第32题(1.0分)题号:494若x为int型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【1】.答案:=======(答案1)=======x==0第33题(1.0分)题号:526表达式 !10! = 1的值是【1】.答案:=======(答案1)=======1第34题(1.0分)题号:520若a为int型变量,则下面表达式的值为【1】.(a=4*5,a*2),a+6答案:=======(答案1)=======26第35题(1.0分)题号:499关系、算术、赋值三种运算符的运算优先顺序由高到低为【1】、【2】、【3】.答案:=======(答案1)=======算术=======(答案2)=======关系=======(答案3)======= 赋值第36题(1.0分)题号:498已知char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为【1】.答案:=======(答案1)=======double第37题(1.0分)题号:510已知:a=1,b=2,表达式a>b?a:b+1的值是【1】.答案:=======(答案1)======= ` 3第38题(1.0分)题号:493判断变量a、b的值均不为0的C表达式为【1】.答案:=======(答案1)=======a*b!=0=========或=========a*b第39题(1.0分)题号:507以下十个运算符+ ! << != , ?: && = || %中优先级别最高和最低的分别是【1】和【2】.答案:=======(答案1)=======!=======(答案2)=======,第40题(1.0分)题号:511表达式3>2>1的值是【1】.答案:=======(答案1)=======0第41题(1.0分)题号:508C语言中的表达式只能由三种字符组成,他们是字母、数字和【1】.答案:=======(答案1)=======下划线=========或=========_第42题(1.0分)题号:517int a=2,b=3; 表达式 a>b?a++,++b的值为【1】.答案:=======(答案1)=======4第43题(1.0分)题号:519执行语句序列"char x=3,y=6,z;z=x^y<<2;"后,z的二进制值为【1】.答案:=======(答案1)=======00011011第44题(1.0分)题号:496设有程序段 int x= 4,y=4;t=++x||++y; 执行语句后y的值为【1】.答案:=======(答案1)=======4第45题(1.0分)题号:506若有定义:int b=7;float a=2.5,c=4.7; 则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【1】.答案:=======(答案1)=======5.5第46题(1.0分)题号:509计算a、b中最小值的条件表达式为【1】.答案:=======(答案1)=======a<b?a:b第47题(1.0分)题号:515设a和b均为int整型变量,且a=5,b=7,则以下表达式的值为【1】.1.0+a/b答案:=======(答案1)=======1.0=========或=========1第48题(1.0分)题号:522若x为int型变量,执行以下语句后x值是【1】.x=3;x+=x-=x+x;答案:=======(答案1)=======-6第49题(1.0分)题号:513条件"20<x<30或x<-100"的C语言表达式是【1】.答案:====(答案1)= ===((x>20)&&(x<30))||(x<-100) =====或====x>20&&x<30||x<-100 第50题(1.0分)题号:502若a是int型变量,则执行表达式"a=25/3%3"后,a的值为【1】.答案:=======(答案1)=======2第51题(1.0分)题号:505设a、b、c为整型数,且a=3,b=5,c=2,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【1】.答案:=======(答案1)=======54第52题(1.0分)题号:495设x,y,z均为int 型变量,请写出描述"x,y和z中有两个为负数"的表达式【1】.答案:=======(答案1)=======((x<0)&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0))第53题(1.0分)题号:503若有定义:int a=2,b=3; floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为【1】.答案:=======(答案1)=======3.5第54题(1.0分)题号:521当a=1,b=1,c=1时,表达式a<b<c的值是【1】.答案:=======(答案1)=======1第55题(1.0分)题号:504若a=1,b=4,c=3,则表达式a&&b+c||b-c的值为【1】.答案:=======(答案1)=======1第56题(1.0分)题号:501执行语句"a=5+(c=6);"后,变量a、c的值依次为【1】、【2】。
C语言考试真题C程序题库一填空题,1,C语言表达式!(3<6)||(4<9)的值是【1】;2,假设变量a,b均为整形,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是【8】;3,当a=3,b=2,c=1;时,执行以下程序段后c=【2】;If(a>b) a=b;If(b>c) b=c;Else c=b;C=a;4,已知 i=5,写出语句i*=i+1;执行后整形变量i 的值是【30】;5,按内存排列顺序,数组char a[2]中的所有元素是a[1]和【a[0]】二判断1,C语言中只能逐个引用数组元素而不能一次引用整个数组 Y2,int i=20;switch(i/10){case2:printf(“A”);Case 1:printf(“B”);}的输出结果为 A N3,在C中,int定义的整形数据在内存中占2个字节。
N4,假设有int a[10], *p; 则p=&a[0]与p=a等价。
Y5,共同体变量所占的内存长度等于最长的成员的长度。
Y三选择题1,数组名作为实参数传递给函数时,数组名被处理为(C)A 该数组的长度B 该数组的元素个数C 该数组的首地址D 该数组中各元素的值2,若调用一个函数,且此函数中没有return语5,已定义两个字符数组a,b,则以下正确的输入格式是(A)A scanf(“%s%s”, a, b)B get(a, b)C scanf(“%s%s”, &a, &b)D gets(“a”), gets(“b”)6,若给定条件表达式(M)?(a++):(a--),则其中表达式M(C)A 和(M==0)等价B 和(M==1)等价C 和(M!=0)等价D 和(M!=1)等价7,以下函数类型是(C)Fff(float x){Return 5;}A 与参数x的类型相同B void 类型C int 类型D 无法确定8,以下不正确的if语句是(B)A if(x>y && x!=y)B if(x==y:) x+=yC if(x!=y)scanf(“%d”, &x ) else scanf(“%d”, &y)D if(x<y) {x++, y++}9,指针变量p进行自动加算(即执行p++;)后,地址偏移值为2,则其数据类型为(A)A intB floatC doubleD char10,在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(C)A (!E==0)B (E>0||E<0)C (E==0)D (E!=0)11,下列程序的输出结果是(B)main ( ){Printf ( “%d\n” ,n )}A 0B 变量无定义C -1D 112,以下选型中,与k=n++完全等价的表达式是(A)A k=n, n=n+1B n=n+1, k=nC k=++nD k+=n+113,以下程序段的输出结果为(D)char c [ ]=”abc” ;int i=0 ;do ; while ( c[ i++ ]!=’ \0’ ) ; printf ( “%d”, i-1 ) ;A abcB abC 2D 314,下列程序段的输出结果为(B)float k=0.8567printf ( “%06.1f%%” ,k*100 );A 0085.6%%B 0085.7%C 0085.6%D .85715,下列选项中正确的语句组是(D)A char s[ 8 ]; s={ “Beijing” };B char *s; s={ “Beijing” };C char s[ 8 ] ; s=”Beijing” ;D char *s ; s=”Beijing” ;16,已知字符a的ASCII码值是97,字符A的ASCII码值是65,则执行下列语句后变量a和b 的值分别为(B)int a, b ;a=1+’ a ‘ ;b=2+7%4- ‘ A ‘ ;A -63, -64B 98, -60C 1, -60D 79, 7817, 若使用一维数组名作函数实参,则以下正确的说法是(A)A 必须在主调函数中说明此数组的大小B 实参数组类型与形参数组类型可以不匹配C 在被调用函数中,不需要考虑形参数组的大小D 实参数组名与形参数组名必须保持一致18,若有说明:int i, j=2, *p=&i; ,则能完成i=j赋值功能的语句是(B)A i=*p ;B *p=*&j ;C i=&j ;D i=**p ;19,若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)A 函数调用可以作为独立的语句存在B 函数调用可以作为一个函数的实参C 函数调用可以出现在表达式中D 函数调用可以作为一个函数的形参20,若a=-14, b=3, 则条件表达式 a<b ? a :b+1的值为(A)A -14B -13C 3D 4一填空题1,已知 i=5,写出语句 a=a++; 执行后整形变量a的值是【5】2,int x=2,y=2,z=0; 则表达式x==y>z的值为【0】3,假设所有变量都为整形,表达式(a=2, b=5, a>b?a++:b++,a+b)的值是【8】4,设k=(a=2,b=3,a*b),则k的值为【6】5,int a=1,b=2,c=3;执行语句a += b *= c;后a的值是【7】二判断题1,int a[ 3 ][ 4 ]={ {1}, {5}, {9} }:它的作用是将数组各行第一列的元素赋初值,其余元素值为0.2,循环结构中的continue语句是使整个循环终止执行 N3,C程序中有调用关系的所有函数必须放在同一个源程序文件中 N4,char c[ ]=”Very Good”: 是一个合法的为字符串数组赋值的语句 Y5,函数strlen(“ASDFG\n”)的值是7 N三选择题1.char h, *s=&h;可将字符H通过指针存入变量h中的语句是(B)A *s=HB *s=’H’C s=HD s=’H’2,应用缓冲文件系统对文件进行读写操作,打开文件的函数名为(B)A openB fopenC closeD fclose3,对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(A)A .B ->C *D &4,若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)A 2.500000B 2.750000C 3.500000D 0.0000005,下列定义数组中的语句不正确的是(D)A static int a[ 2 ][ 3 ]={ 1,2,3,4,5,6 }B static int a[ 2 ][ 3 ]={ {1},{4,5} }C static int a[ ] [ 3 ]={ {1},{4} }D static int a[ ] [ ]={ {1,2,3},{4,5,6} } 6,下列变量说明语句中,正确的是(D)A char : a b cB char a; b; cC int x; zD int x, z7,关于return语句,下列正确的说法是(C)A 不能在主函数中出现且在其他函数中均可出现B 必须在每个函数中出现C 可以在同一个函数中出现多次D 只能在除主函数之外的函数中出现一次8,以下可作为函数fopen中第一个参数的正确格式是(D)A c : user\text . txtB c : \user\text . txtC “c : \user\text . txt”D “c : \\user\\text . txt”9,若所有变量均为整形,则表达式(a=2,b=5,b++,a+b)的值是(B)A 7B 8C 6D 210,为表示“x大于等于y,y大于等于z”,应使用C语言表达式(A)A (x>=Y)&&(Y>=z)B (x>=Y)AND(y>=z)C (x>=Y>=z)D (x>=Y)&(Y>=z)11,执行以下程序段后,输出结果和a的值是(B) Int a=10;printf(“%d”,a++);A 10和 10B 10和 11C 11和 10D 11和 1112,若有int i=3, *p;p=&i ; 下列语句中输出结果为3的是(C)A printf (“%d”, &p )B printf (“%d”, *i )C printf (“%d”, *p )D printf (“%d”, p )13,C语言规定,在一个源程序中,main函数的位置(C)A 必须在最开始B 必须在系统调用的库函数的后面C 可以任意D 必须在最后14,C语言中的文件的储存方式有(C)A 只能顺序存取B 只能随机存取(或直接存取)C 可以顺序存取,也可随机存取D 只能从文件的开头进行存取15;以下read函数的调用形式中,参数类型正确的是(A)A read (int fd, char *buf, int count)B read(int *buf, int fd, int count)C read(int fd, int count, char *buf)D read(int count, char *buf, int fd ) 16,以下标识符中,不能作为合法的C用户定义标识符的是(D)A ForB PrintfC WORDD sizeof17,条件运算符的结合方式是(A)A 自右自左B 自左至右C 任意D 前后顺序18,若有说明:int a[ 3 ][ 4 ]={ 0 };则下面正确的叙述是(D)A 只有元素a[ 0 ][ 0 ]可得到初值0B 此说明语句不正确C 数组a中各元素都可得到初值,但其值不一定为0D 数组a中每个元素均可得到初值019,设有以下定义:struct sk { int a; floatb; } data, *p; 若要使p指向data中的a域,正确的赋值语句是(A)A p=( struct sk* )&data. a;B p=( struct sk ) data. a;C p=&data. a;D *p=data. a;20,下列运算符中是C语言关系运算符的是(D)A ~B !C &D !=一填空题1,C语言的三种基本结构是【顺序】结构、选择结构、循环结构2,设有以下定义语句:Int a[ 3 ] [ 2 ]={ 10, 20, 30, 40, 50, 60 },( *p ) [ 2 ];p=a;则 *(*(p+2)+1)值为【60】3,当a=1, b=2, c=3时,执行以下程序段后c=【2】if ( a>c ) b=a;a=c;c=b;4,int x=2, y=3, z=4, 则表达式x+( y>! z )的值为【3】5,设C语言中,int类型数据占2个字节,则long类型数据占【4】个字节,Short类型数据占【2】个字节二判断题1,一个include命令可以指定多个被包含的文件 N2,#define和printf都不是C语句Y3,x*=y+8等价于x=x*( y+8 ) Y4,若有定义和语句:int a; char c; float f;scanf( “%d, %c, %f”, &a,&c,&f );若通过键盘输入:10,A,12.5,则a=10, c=’A’, f=12.5 Y5,a=( b=4 )+( c=6 )是一个合法的赋值表达式Y三选择题1,已知字母a的ASCII十进制代码为97,则执行下列语句后输出的结果为(C)char a=’a’ ; a--;Printf ( “%d,%c\n”,a+’2’-’0’,a+’3’-’0’ );A b, cB a--运算不合法,故有语法错C 98,cD 格式描述和输出项不匹配,输出无定值2,C语言中函数调用的方法有(D)A 函数调用作为语句一种B 函数调用作为函数表达式一种C 函数调用作为语句或函数表达式两种D 函数调用作为语句、函数表达式或函数参数三种3,设char *s=”\ta\017bc”:则指针变量s指向的字符串所占的字节数是(C)A 9B 5C 6D 74,下列定义不正确的是(C)A #define PI 3.141592B #define S 345C int max( x,y ); int x,y; { }D static char c;5,一个C程序的执行是从(A)A 本程序的main函数开始,到main函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序的main函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序main函数结束6,以下程序段的输出结果为(B)for ( i=4; i>1; i-- )for ( j=1; j<i; j++ )putchar ( ‘#’ );A 无B ######C #D ###7,sizeof ( float )是(C)A 一个函数调用B 一个不合法的表达式C 一个整形表达式D 一个浮点表达式8,以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C)A char s[ 10 ]=”abcdefg”;B char t[ ]=”abcdefg”, *s=t;C char s[ 10 ]; s=”abcdefg”D char s[ 10 ]; strcpy( s, “abcdefg” ) 9,以下运算符中,优先级最高的运算符是(B)A ?:B ++C &&D ,10,以下选项中合法的实型常数是(C)A 5E2.0B E-3C .2E0D 1.3E11,执行语句int x=5, a=0, b=0; if ( x=a+b ) printf ( “****\n”); else printf ( “####\n” );后,结论是A 有语法错误,不能通过翻译B 能通过翻译,但不能连接C 输出****D 输出####12,C语言结构体类型变量在程序执行期间(A)A 所有成员一直驻留在内存中B 只有一个成员驻留在内存中C 部分成员驻留在内存中D 没有成员驻留在内存中13,变量的指针,其含义是指该变量的(B)A 值B 地址C 名D 一个标志14,以下语句char c=’ a ‘; if ( ‘a’<c<=’z’) printf ( “LOW”); else printf ( “UP” );执行后的结果为(A)A LOWB UPC LOWUPD 语句错误,编译不能通过15,执行下列语句的结果为(B)Int x=3, y;Int *px=&x;y=*px++;A x=3, y=4B x=3, y=3C x=4, y=4D x=3, y不知16,以下关于运算符优先顺序的描述中正确的是(C)A 关系运算符<算术运算符<赋值运算符<逻辑运算符B 逻辑运算符<关系运算符<算术运算符<赋值运算符C 赋值运算符<逻辑运算符<关系运算符<算术运算符D 算术运算符<关系运算符<赋值运算符<逻辑运算符18,若定义:int a=511, *b=&a;,则printf ( “%d\n”, *b );的输出结果为(D)A 无确定值B a的地址C 512D 51119,下列表达式中,(B )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求.A x%2==0B ! x%2 !=0C ( x/2*2-x )==0D ! ( x%2 )20,全局变量的定义不可能在(A)A 函数内部B 函数外面C 文件外面D 最后一行选择题集锦1,下列字符中,能作为单个标识符的是( D )A ?AB a=2C a. 3D a_32,下列字符列中,可以作为“字符串常量”的是( B )A ABCB “ABC”C ‘abc’D ‘a’3,在以字节存储字符的系统中,‘\n’在内存占用的字节数是( A )A 1B 2C 3D 44,字符串”xyz “在内存占用的字节数是( B )A 3B 4C 6D 85,设变量m ,n ,a ,b ,c ,d的初值均为0,执行( m=a==b )||( n=c==d )后,m , n的值是()A 0 ,0B 0, ,1C 1 ,0D 1 ,16,设a为5,执行下列计算后,b的值不为2的是()A b = a / 2B b = 6-( --a )C b = a%2D b = a < 3 ? 3 : 27,执行语句” x=( a=3 , b=a-- ) ; “后,x , a , b 的值依次为()A 3 , 3 , 2B 2 , 3 , 2C 3 , 2 , 3D 2 , 3 , 38,设整形变量m , n , a , b , c , d均为1,执行” ( m=a>b )&&( n=a>b ) “后,m , n的值是()A 0 , 0B 0 , 1C 1 , 0D 1 , 19,设有代码” int a = 3 ; “则执行语句”a+=a-=a*a ; “后,变量a的值是()A 3B 0C 9D -1210,若已定义x和y为double类型,则表达式 : x = 1 , y = x + 3/2结果为()A 1B 2C 2.0D 2.511,设 a = 1 , b = 2 , c = 3 , d = 4 则表达式a < b ? a : c < d ? a : d的结果为()A 4B 3C 2D 112,若有以下定义 : char a ; int b ; float c ; double d ;则表达式a*b+d-c值得类型为()A floatB intC charD double13,设ch是char型变量,其值为’A ‘,则下面表达式的值是()ch = ( ch>=’ A ‘&& ch <= ‘ Z ‘ ) ? ( ch + 32 ) : chA ‘ A ‘B ‘ a ‘C ‘ Z ‘D ‘ z ‘14,设有int i = 010 , j = 10 ;则执行”printf ( “%d , %d\n” , ++i , j-- ) ; “的输出值是()A 11 ,10B 9 , 10C 010 , 9D 10 , 915,设a , b为字符变量,执行”scanf ( “a =%c , b = %c “ ,&a , &b )”后使a变为A,b为B,从键盘上的正确输入是()A ‘ A ‘’B ‘B ‘ A ‘ , ‘ B ‘C A = A , B = BD a = A , b = B16,下列语句中,句法错误的是()A while ( x = y ) 5;B do x++ while ( x = = 10 );C while ( 0 );D do 2 ; while ( a = = b );17,假定a和b为int型变量,则执行以下语句后b的值为()a = 1 ;b = 10 ;do { b- = a ; a++ } while ( b-- < 0 ) ;A 9B -2C -1D 818,设x和y为int型变量,则执行下面的循环后 , y的值为()for ( y = 1 , x = 1 ; y <= 50 ; y++ ) {if ( x >= 10 ) break ;If ( x%2 == 1 ) { x + =5 ; continue ; } x - = 3 ;}A 2B 4C 6D 819,下列程序的功能是输出一个整数,判断是不是素数,若为素数输出1,否则输出0,请为程序填空.main ( ){int i , x , y = 1 ;scanf ( “ %d “ , &x ) ;for ( i = 2 ; i <= x/2 ; i++ )if ___________________ { y = 0 ; break ; }printf ( “%d\n” , y ) ;}20,编一个程序,输入X的值,按下列公式计算并输出Y的值。
C语言程序填空题 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N] 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ① ; b= ② ; a= ③ ;
printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。
#include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ① ; return( ② ); } 【】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;ps=s+t; ② ; } printf("%d\n",s); } 【】有以下程序段: s=; for(k=1;k<=n;k++) s=s+(k*(k+1)); printf("%f\n",s); 填空完成下述程序,使之与上述程序的功能完全相同。
s=; ① ; k=0; do { s=s+d; ② ; d=(k*(k+1)); }while( ③ ); printf("%f\n",s); 【】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin);
} 【】下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。
fun(int x,int b[]) { int k=0,r; do { r=x% ① ; b[k++]=r; x/= ② ; }while(x); } 【】下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字 26,数位上数字的乘积12大于数字之和8。 main() { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1; s=0; ① ; while( ② ) { k*=m%10; s+=m%10; ③ ; } if(k>s) printf("%d",n); } } 【】下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。
main() { int i,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if( ① ) continue; else for(k=0;k<=9;k++) if( ② ) count++; printf("%d",count); } 【】下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。
main() { int i,j; for(i=0; ① ;i++) { j=i*10+6; if( ② ) countinue; printf("%d",j); } } 【】下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。 hcf(int m,int n) { int r; if(m} ③ ; } 【】下面程序的功能是使用冒泡法对输入的10个浮点数从小到大进行排序。排好序的10个数分两行输出。程序如下:
#include <> main() { ① ; int i,j; printf("Input 10 numbers please\n"); for(i=0; ② ;i++ ) scanf("%f", &a[i]); printf("\n"); for(i=2; ③ ;i++ ) for(j=0; ④ ;j++ ) if( ⑤ ) { x=a[j]; ⑥ ; a[j+1]=x; } printf("The sorted 10 numbers;\n"); for(i=0; ⑦ ;i++ ) { if( ⑧ ) printf("\n"); printf("%f\t",a[i]); } printf("\n"); } 【】下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。 #include "" main() { int i,a[20],s,count; s=count=0; for(i=0;i<20;i++ ) scanf("%d", ① ); for(i=0;i<20;i++) { if(a[i]<0) ② ; s+=a[i]; count++; } printf("s=%d\t count=%d\n",s,count); } 【】下面程序的功能是删除字符串s中的空格。
#include <> main() { char *s="Beijing ligong daxue"; int i,j; for(i=j=0;s[i]!='\0';i++) if(s[i]!= ' ') ① ; else ② ; s[j]= '\0'; printf("%s",s); } 【】下面程序的功能是将字符串s中所有的字符'c'删除。请选择填空。 #include<> main( ) { char s[80]; int i,j; gets(s); for(i=j=0;s[i]!= '\0';i++ ) if(s[i]!= 'c') ① ; s[j]= '\0'; puts(s); } 【】下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。
#include <> char x[]="programming"; char y[]="Fortran"; main() { int i=0; while(x[i]!= '\0' && y[i]!= '\0') if(x[i]==y[i]) printf("%c", ① ); else i++; } 【】下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已排好序。 #include <> main() { char a[20]="cehiknqtw"; char s[]="fbla"; int i,k,j; for(k=0;s[k]!= '\0';k++ ) { j=0; while(s[k]>=a[j] && a[j]!= '\0' ) j++; for( ① ) ② ; a[j]=s[k]; } puts(a); } 【】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。
#include <> main() { char str1[100],str2[100],c; int i,s; printf("Enter string 1: "); gets(str1);
printf("Enter string 2: "); gets(str2);
i=0; while((str1[i] == str2[i] && str1[i]!= ① ))
i++; s= ② ; printf("%d\n", s); } 【】下面的函数expand在将字符串s复制到字符串t时, 将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符。 expand(char s[],char t[]) { int i,j; for(i=j=0;s[i]!= '\0';i++ ) switch (s[i]) { case '\n': t[ ① ] = ② ; t[j++] = 'n'; break; case '\t': t[ ③ ] = ④ ; t[j++] = 't'; break; default: t[ ⑤ ] = s[i]; break; } t[j] = ⑥ ; } 【】下面的函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。
index(char s[], char t[]) { int i,j,k; for(i=0;s[i]!= '\0';i++ ) { for(j=i,k=0; ① && s[j]==t[k];j++,k++) ;
if( ② ) return (i); } return(-1); } n 【】下面程序的功能是计算S= k! 。 k=0