C语言程序设计模拟题1.docx
- 文档编号:3507899
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:48
- 大小:36.61KB
C语言程序设计模拟题1.docx
《C语言程序设计模拟题1.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟题1.docx(48页珍藏版)》请在冰豆网上搜索。
C语言程序设计模拟题1
C语言第一套模拟题
一、单项选择
1.下列数据中,为字符串常量的是()。
A、'A'B、Howdoyoudo.C、$abcD、"house"
2.以下所列的C语言常量中,错误的是()。
A、0xFFB、1.2e0.5C、2LD、'\72'
3.以下程序的输出结果是()。
main()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A、x=3.600000,i=4B、x=3i=3.600000
C、x=3,i=3D、x=3.600000,i=3
4.若k是整型,则以下程序段的执行结果是:
()
k=-3;
if(k<=0)printf("####")
elseprintf("&&&&");
A、####B、有语法错误,无结果C、&&&&D、####&&&&
5.若x=2,y=3则x||y的结果是()。
A、3B、0C、1D、2
6.针对下列程序段回答问题().
for(t=1;t<=100;t++)
{
scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);
}
A、x>=0时什么也不输出B、最多允许输出100个非负整数
C、printf函数永远也不执行D、当x<0时整个循环结束
7.以下程序的执行结果是()。
main()
{intnum=0;
while(num<=2){num++;printf("%d,",num);}}
A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,
8.选择正确的输入语句()。
:
(其中:
charstring[20];)使得string的内容为"Iamstudent".
A、scanf("%s",string);B、scanf("%c",&string);
C、scanf("%s",&string);D、gets(string);
9.对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。
A、将5个初值依次赋给a[6]至a[10]
B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[1]至a[5]
10.以下标识符中可以作为用户函数名的是().
A、structB、intC、unionD、go_to
11.以下叙述错误的是().
A、函数调用可以出现在一个表达式中
B、函数调用可以作为一个函数的形参
C、函数调用可以作为一个函数的实参
D、函数允许递归调用
12.若用数组名作为函数的实参,传递给形参的是()。
A、数组第一个元素的值B、数组的首地址
C、数组元素的个数D、数组中全部元素的值
13.在C语言程序中()。
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数调用不可以嵌套
D、函数的定义和函数调用均可以嵌套
14.下列说法中正确的是().
A、函数调用不占运行时间,只占编译时间.
B、宏替换不占运行时间,只占编译时间.
C、有参数的宏定义,就是函数.
D、在定义宏时,宏名与带参数的括弧之间可以加空格.
15.若有说明:
int*p,m=5,n;以下正确的程序段是()。
A、scanf("%d",&n);*p=n;B、p=&n;scanf("%d",*p)
C、p=&n;scanf("%d",&p);D、p=&n;scanf("%d",p);
16.对于下述定义,不正确的叙述是().
uniondata
{inti;
charc;
floatf;
}a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义类型的同时定义变量a,并对a的任意成员初始化
C、变量a所占内存的长度等于成员f的长度
D、如果有定义语句uniondataa={6};则对变量a的初始化是正确的
17.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,
正确的形式是().
A、fscanf(dog,2,1,fp);B、fscanf(fp,"%d%d",&dog,&cat);
C、fscanf(dog,cat,2,1,fp);D、fscanf(fp,"%d",&dog,&cat);
二、判断
1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变
2.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出.
3.条件表达式x?
'a':
'b'中,若x=0时,表达式的值为'a'.
4.在逻辑运算符中的运算级别由高向低依次为&&->||->!
5.do-while循环由do开始,while结束,循环体可能一次也不做。
6.continue语句用于终止循环体的本次执行.
7.若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.
8.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
9.定义一维数组的形式为:
类型说明 数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.
10.在C语言中,函数名代表函数的入口地址.
11.函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.
12.数组名可以作为函数的实参和形参.
13.一个include命令只能指定1个被包含的文件。
14.若p为指针变量,a为数组名,则a-p是合法的表达式.
15.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
16.C语言中,关闭一个文件就删除了这个文件.
三、填空
1.已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是_____.
2.设有intx=11,则表达式(x++*1/3)的值是_____。
3.若intx=6;则x+=x-=x*x表达式最后x的值是_____.
4.设x=2&&2||5>1,x的值为_____.
5.连接字符串的函数是_____,只写函数名即可.
6.函数不可以进行嵌套定义,但可以进行嵌套_____.
7.设有以下结构类型说明和变量定义,则变量b在内存所占字节数是_____。
structstud{shortintage;charnum[3];floats[2];doubleave;}b,*p;
8.若有fp=fopen("a1.dat","r+")打开文件语句,这个文件的数据是以_____的形式存放在内存中,该文件的使用方式为读/_____。
四、程序设计
1./*功能:
输入n个数,并求出小于平均值的数的个数。
*/
#include"stdio.h"
intaverage_num(inta[],intn)
{
/*********Begin**********/
/**********End**********/
}
main()
{
intn,a[100],i,num;
voidTestFunc();
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]); num=average_num(a,n); printf("thenumis: %d\n",num); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<5;n++) { fscanf(IN,"%d",&i[n]); } o=average_num(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 2./*功能: 从字符串中删除指定的字符。 同一字母的大、小写 按不同字符处理。 例如: 若程序执行时输入字符串为: turbocandborlandc++ 从键盘上输入字符: n,则输出后变为: turbocadbo rladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出。 */ #include"stdio.h" voidfun(chars[],charc) { /*********Begin**********/ /**********End**********/ } voidTestFunc() { FILE*IN,*OUT; chari[200]; /*charo[200];*/ IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } fscanf(IN,"%s",i); fun(i,'n'); fprintf(OUT,"%s",i); fclose(IN); fclose(OUT); } main() { staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); TestFunc();} 五、程序改错 1./*功能: 依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 例如: 输入ab12c3d,则输出123。 注意: 不得增行或删行,也不得更改程序的结构! */ #include"stdio.h" /**********ERROR**********/ voidfun(chars) { inti,j; for(i=0,j=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9') /**********ERROR**********/ s[j]=s[i]; /**********ERROR**********/ s[j]="\0"; } main() { charitem[80]; printf("\nEnterastring: "); gets(item); printf("\n\nThestringis: \"%s\"\n",item); fun(item); printf("\n\nThestringofchangingis: \"%s\"\n",item); } /*功能: 读入一个整数m(5≤m≤20),函数rnd获得m个随机整数, 函数sortpb将这m个随机整数从小到大排序。 例如: 若输入整数7,则应输出: 3101728323647。 */ #include"conio.h" #include"stdio.h" voidsortpb(intn,inta[]) { /**********ERROR**********/ inti,j,p; for(j=0;j { p=j; for(i=j+1;i /**********ERROR**********/ if(a[p]>a[j])p=i; /**********ERROR**********/ if(p==j) { t=a[j]; a[j]=a[p]; a[p]=t; }}} voiddoublernd() { statict=29,c=217,m=1024,r=0; r=(r*t+c)%m;return((double)r/m); } voidgetarr(intn,int*x) { inti; for(i=1;i<=n;i++,x++)*x=(int)(50*rnd()); } voidputarr(intn,int*z) { inti; for(i=1;i<=n;i++,z++) { printf("%4d",*z); if(! (i%10))printf("\n"); } printf("\n"); } main() { intaa[20],n; printf("\nPleaseenteranintegernumberbetween5and20: "); scanf("%d",&n); getarr(n,aa); printf("\n\nBeforesorting%dnumbers: \n",n);putarr(n,aa); sortpb(n,aa); printf("\nAftersorting%dnumbers: \n",n);putarr(n,aa); } 六、程序填空 1./*功能: 计算矩阵a的下三角(包含主对角线)元素之积,矩阵的 行、列数和元素值均由键盘输入。 */ #defineM10 #include"stdio.h" intmain() { inti,j,n,a[M][M]; longs=1; scanf("%d",&n); /***********FILL***********/ for(_________) for(j=0;j scanf("%d",&a[i][j]); for(i=0;i /***********FILL***********/ for(j=0;_______;j++) /***********FILL***********/ s=_________; printf("%ld\n",s); return0; } /*题目: 本程序的功能是从10个数中找出其中的最大值,完善程序*/ #include"stdio.h" main() { inta[10],i,*pmax; for(i=0;i<10;i++) scanf("%d",&a[i]); /***********FILL***********/ pmax=_____; for(i=1;i<10;i++) if(a[i]>*pmax)pmax=&a[i]; /***********FILL***********/ printf("%d",_____); } C语言第二套模拟题 一、单项选择 1.字符串"\\\'efg\'\\"的长度是: (). A、3B、11C、7D、5 2.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。 A、doubleB、不确定C、intD、float 3.下列语句的结果是()。 main() {intj; j=3; printf("%d,",++j); printf("%d",j++); } A、3,3B、4,4C、3,4D、4,3 4.逻辑表达式! (2-1)&&x||0的值是() A、1B、0C、3D、2 5.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。 A、3B、2C、1D、不一定 6.执行语句for(i=1;i++<4;);后变量i的值是()。 A、3B、5C、4D、不定 7.以下正确的描述是(). A、只能用continue语句来终止本次循环 B、switch语句中不能出现continue语句 C、在循环中break语句不能独立出现 D、goto语句只能用于退出多层循环 8.下面合法的语句定义是(). A、chara[]={'0','1','2','3','4','5'}; B、inta[]="string"; C、inta[5]={0,1,2,3,4,5}; D、chara="string"; 9.chara[10];不能将字符串"abc"存储在数组中的是()。 A、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; B、a="abc";C、strcpy(a,"abc");D、a[0]=0;strcat(a,"abc"); 10.在C语言中,一维数组的定义方式为: 类型说明符数组名()。 A、[整型常量]或[整型表达式]B、[正整型常量表达式] C、[整型表达式]D、[常量表达式] 11.在定义全局变量和局部静态变量的同时赋值,变量的初始化在()时确定的. A、运行B、编辑C、编译D、调试 12.关于建立函数的目的,以下正确的说法是()。 A、提高程序的可读性B、减少程序文件所占内存 C、减少程序的篇幅D、提高程序的执行效率 13.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5)); A、3B、5C、语法错误D、2 14.设有宏定义#defineSUB(x,y)(x)*y,且a=3,b=4,则SUB(a++,b++)的值为(). A、13B、16C、20D、12 15.变量p为指针变量,若p=&a,下列写法不正确的是()。 A、*(p++)==a++B、&*p==&aC、(*p)++==a++D、*&a==a 16.下列程序正确的运行结果为(). #include main() { unionu {char*name; intage; intincome; }s; s.name="WANGLING"; s.age=28; s.income=1000; printf("%d\n",s.age); } A、8B、28C、1000D、不确定 17.定义my_file为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正 确的调用形式为(). A、my_file=fopen("my.dat","r"); B、my_file=fopen("my.dat","rb+"); C、my_file=fopen("my.dat","rb"); D、my_file=fopen("my.dat","r+"); 二、判断 1.若i=3,则printf("%d",-i++);输出的值为-4。 2.格式字符%x用来以八进制形式输出整数. 3.设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0. 4.已知a=4,b=2,c=3,d=5,表达式a>b? a: c c: d的值为3. 5.break语句能够终止当前进行的多层循环. 6.break语句不能终止正在进行的多层循环. 7.若有定义和语句: inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21. 8.二维数组在内存中存贮时,是按行的顺序进行存储的。 9.C语言中引用数组元素的方括号可以用花括号代替. 10.每次调用函数时,都要对静态局部变量重新进行初始化. 11.在程序中的第二个函数之后定义了某全局变量,则该程序的所有函数均可使用它. 12.在C程序中,函数既可以嵌套定义,也可以嵌套调用 13.在定义宏时,在宏名与带参数的括弧之间不应加空格. 14.数组名与指针变量是相互等价的. 15.两个类型相同的结构体变量,可以互相赋值. 16.C语言中,在打开文件时,必须说明文件的使用方式,"r+"用于打开一个不存在的文件. 三、填空 1.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____. 2.在C语言中,long类型数据占_____个字节,short类型数据占_____个字节. 3.intx=2,y=3,z=4;则表达式x+y>z&&y==z的值为_____. 4.intx=2,y=3,z=4;则表达式x+y&&(x=y)的值为_____. 5.C语言中,二维数组在内存中的存放方式为按_____优先存放. 6.函数调用时的实参和形参之间的数据是单向的_____传递. 7.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_____,再说明结构体变量. 8.调用fopen函数打开一文本文件,在"使用方式"这一项中,为输入而打开需填入_____. 四、程序设计 1./*功能: 求出二维数组外围元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 */ #defineM4 #defineN5 #include"stdio.h" intfun(inta[M][N]) { /*********Begin**********/ /**********End**********/ } main() { inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; voidTestFunc(); inty; y=fun(a); printf("s=%d\n",y); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intiIN[M][N],iOUT; inti,j,k; IN=fopen("14.in","r"); if(IN==NULL) {printf("Please
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 模拟
![提示](https://static.bdocx.com/images/bang_tan.gif)