C语言期中开放2 2.docx
- 文档编号:9356066
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:20KB
C语言期中开放2 2.docx
《C语言期中开放2 2.docx》由会员分享,可在线阅读,更多相关《C语言期中开放2 2.docx(16页珍藏版)》请在冰豆网上搜索。
C语言期中开放22
一、单项选择(34)
1.sizeof(float)是(C)。
A、一个浮点表达式
B、一个不合法的表达式
C、运算结果是一个整型表达式。
D、一种函数调用
2.下列数据中属于"字符串常量"的是(B)。
A、'A'
B、"ABC"
C、ABC
D、'ABC'
3.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B).
(用"[CR]"表示回车,U表示空格)
main()
{inti,k;
scanf("i=%d,k=%d",&i,&k);
}
A、i=10[CR]k=15[CR]
B、i=10,k=15[CR]
C、10U15[CR]
D、10,15[CR]
4.逻辑表达式3<2||-1&&4>3-!
0的值为:
(A)
A、1
B、3
C、0
D、2
5.下列运算符中是C语言关系运算符的是(C)。
A、&
B、~
C、!
=
D、!
6.语句while(!
E);中的表达式!
E等价于(D)。
A、E==1
B、E!
=0
C、E!
=1
D、E==0
7.以下正确的描述是(A).
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行(终止循环体的本次执行,继续执行判定)
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
8.下面各语句中,能正确进行赋字符串操作的语句是(B).D?
?
?
A、chars1[5][]={"ABCDE"};
B、chars2[6]={'A','B','C','D','E'};
C、charst[][]={"ABCDE"};
D、chars[5]={'A','B','C','D','E'};
9.若有说明:
inta[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0
B、只有元素a[0][0]可得到初值0
C、数组a中各元素都可得到初值,但其值不一定为0
D、此说明语句不正确
10.若有说明inta[3][4];则a数组元素的非法引用是(B)。
A、a[1][3]
B、a[0][4]
C、a[0][2*1]
D、a[4-2][0]
11.执行下面程序后,输出结果是(D)。
?
?
?
?
main()
{inta,b,c;
a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
A、72
B、18
C、27
D、45
12.以下正确的描述是:
在C语言程序中(B)。
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义和函数的调用均不可以嵌套
13.在C语言的函数中,下列正确的说法是(B)。
A、形参可以是常量和变量
B、可以有也可以没有形参
C、数组名不能作形参
D、必须有形参
14.设有宏定义#definePI3.14和#defineS(r)PI*r*r,则S
(2)的值为(B).
A、6.28
B、12.56
C、3.14
D、9.42
15.inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是(D)。
?
?
?
?
?
?
?
A、4
B、2
C、不一定
D、3
16.若有以下程序段,则使用错误的选项是(C).?
?
?
?
?
?
?
?
structstudent
{
intnum;
intage;
};
structstudentstu[3]={{1001,20},{1002,19},{1004,20}};
main();
{
structstudent*p;
p=stu;
…
;
}
A、(*p).num
B、(p++)->num
C、p=&stu.age
D、p++
17.若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(A)。
A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B、以上各种说法皆不正确
C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
D、文件打开时,原有文件内容被删除,只可作写操作
二、判断
1.#define和printf都不是C语句。
Y
3.语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?
a:
b取代.N
8.数组的首地址一定是第一个数组元素的地址.Y
10.数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值.N
11.在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.N?
1544
12.在一个函数中定义的静态局部变量不能被另外一个函数所调用.Y
13.计算机编译系统对宏定义在编译时进行语法检查.N
14.指向某一变量的指针,就是该变量的内存地址.Y
15.对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。
Y
16.在打开文件时,必须说明文件的使用方式,"r"表示以只读方式打开一个文件.Y
三、填空
1.intx=2;z=x++-1;则x的值为__3___.3
2.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_____.2.5
3.设x=62,表达式x>=60&&x<70||x==1的值为___1__.1
4.c语言表达式5>2>7>8的值是__0___.0
5.字符串比较的库函数是_strcmp____,只写函数名即可.strcmp
6.从函数的形式上看,函数分为无参函数和_youc____两种类型.有参函数
7.设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是_____。
16
unionstud{charnum[6];floats[4];doubleave;}a,*p;
8.在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和_____文件.二进制
四、程序设计
1./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
用函数求N个[10,60]上的整数中能被5整除的最大
的数,如存在则返回这个最大值,如果不存在则
返回0。
------------------------------------------------*/
#include"stdio.h"
#include"stdlib.h"
#defineN30
intfind(intarr[],intn)
{
intm=0;
/*********Begin**********/
inti;
for(i=0;i if(arr[i]%5==0&&arr[i]>m) m=arr[i]; /**********End**********/ return(m); } main() { inta[N],i,k; voidTestFunc(); for(i=0;i a[i]=rand()%50+10; for(i=0;i { printf("%5d",a[i]); if((i+1)%5==0)printf("\n"); } k=find(a,N); if(k==0) printf("NOFOUND\n"); else printf("themaxis: %d\n",k); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intn; inti[5]; 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=find(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 2./*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 根据整型参数n,计算如图公式的值。 ------------------------------------------------*/ #include"stdio.h" #include"conio.h" doublefun(intn) { /*********Begin**********/ doublea=1;inti; for(i=1;i a=1.0/(1+a); returna; /**********End**********/ } main() { intm; voidTestFunc(); printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%f\n",fun(m)); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; ints; intt; doubleo; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%f\n",o); } fclose(IN); fclose(OUT); } 五、程序改错 1./*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 实现3行3列矩阵的转置,即行列互换。 ------------------------------------------------------*/ #include"stdio.h" voidfun(inta[3][3],intn) { inti,j,t; for(i=0;i for(j=0;j /**********ERROR**********/ scanf("%d",a[i][j]);scanf("%d",&a[i][j]); for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } for(i=0;i /**********ERROR**********/ for(j=0;j { /**********ERROR**********/ a[i][j]=t;t=a[i][j]; a[i][j]=a[j][i]; /**********ERROR**********/ t=a[j][i];a[j][i]=t; } for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } main() { intb[3][3]; fun(b,3); } 2./*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 从键盘输入10个字符,统计其中数字字符的个数。 ------------------------------------------------------*/ #include intmain() { inti,sum=0; charc; for(i=11;i>=2;i--) { /**********ERROR**********/ c=gets();c=getchar(); if(c<'0'||c>'9') /**********ERROR**********/ break;continue; ++sum; } printf("sum=%d",sum); return0; } 六、程序填空 1./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 从键盘上输入2名学生4门课成绩,求每个学生的平均成绩,并统计不及格门次。 -------------------------------------------------------*/ #include #include"math.h" intmain() { inti,j,n=0; floatx,sum,avg; for(i=1;i<=2;i++) { /***********FILL***********/ ____________;sum=0 for(j=1;j<=4;j++) { scanf("%f",&x); if(x<60)n++; /***********FILL***********/ ___________;sum=sum+x或sum+=x } avg=sum/4.0; printf("\navgofNO.%dis%5.2f",i,avg); } printf("\n%d",n); return0; } 2./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 设数组a中的元素均为正整数,以下程序是求a中偶数的个数 和偶数的平均值。 -------------------------------------------------------*/ #include intmain() { inta[10]={1,2,3,4,5,6,7,8,9,10}; intk,s,i; floatave; for(k=s=i=0;i<10;i++) { /***********FILL***********/ if(a[i]%2! =0)_______;continue /***********FILL***********/ s+=________;a[i] k++; } if(k! =0) { ave=s/k; printf("%d,%f\n",k,ave); } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言期中开放2 语言 期中 开放