北航C语言.docx
- 文档编号:17228410
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:18
- 大小:20.36KB
北航C语言.docx
《北航C语言.docx》由会员分享,可在线阅读,更多相关《北航C语言.docx(18页珍藏版)》请在冰点文库上搜索。
北航C语言
一、选择题
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).
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、文件打开时,原有文件内容被删除,只可作写操作
答案:
CBBACDABABDBBBDCA
二、判断
1、#define和printf都不是C语句。
对
2、格式字符%x用来以十六进制形式输出整数.对
3、语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式printf(“%d”,a>b?
a:
b);取代.对
4、逻辑表达式-5&&!
8的值为1.错
5、循环结构中的continue语句是使整个循环终止执行错
6、for循环语句不能用于循环次数未知的情况下.错
7、引用数组元素时,数组元素下标必须是整型常量.对
8、数组的首地址一定是第一个数组元素的地址.
9、数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.
10、数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值.
11、在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.
12、在一个函数中定义的静态局部变量不能被另外一个函数所调用.
13、计算机编译系统对宏定义在编译时进行语法检查.
14、指向某一变量的指针,就是该变量的内存地址.
15、对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。
16、在打开文件时,必须说明文件的使用方式,"r"表示以只读方式打开一个文件.
答案:
对对对错对对对错对对对对对对对对
三、填空
1、intx=2;z=x++-1;则x的值为_____.
2、设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_____.
3、设x=62,表达式x>=60&&x<70||x==1的值为_____.
4、c语言表达式5>2>7>8的值是_____.
5、字符串比较的库函数是_____,只写函数名即可.
6、从函数的形式上看,函数分为无参函数和_____两种类型.
7、设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是_____。
unionstud{charnum[6];floats[4];doubleave;}a,*p;
8、在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和_____文件.
答案:
(1)3
(2)2.5(3)1(4)0(5)strcmp(6)有参函数(7)16(8)二进制
四、程序设计
1、功能:
用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。
------------------------------------------------*/
#include"stdio.h"
#include"stdlib.h"
#defineN30
intfind(intarr[],intn)
{
intm=0;
/*********Begin**********/
/**********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); } 【参考代码】 inti; for(i=0;i if(arr[i]%5==0&&arr[i]>m) m=arr[i]; =============== 2、 功能: 根据整型参数n,计算如图公式的值。 ------------------------------------------------*/ #include"stdio.h" #include"conio.h" doublefun(intn) { /*********Begin**********/ /**********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); } 【参考代码】 doublea=1;inti; for(i=1;i a=1.0/(1+a); returna; =============== 五、程序改错 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]); 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; a[i][j]=a[j][i]; /**********ERROR**********/ t=a[j][i]; } for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } main() { intb[3][3]; fun(b,3); } 【改错1】 【参考答案】 scanf("%d",&a[i][j]); scanf("%d",(*(a+i)+j)); ============================================================ 【改错2】 【参考答案】 for(j=0;j for(j=0;i>j;j++) for(j=0;j<=i;j++) for(j=0;i>=j;j++) for(j=i+1;j for(j=i;j for(j=0;j<=i-1;j++) for(j=0;i-1>=j;j++) for(j=i+1;j<=n-1;j++) for(j=i;j<=n-i;j++) =========================================== 【改错3】 【参考答案】 t=a[i][j]; =========================================== 【改错4】 【参考答案】 a[j][i]=t; =========================================== 2、功能: 从键盘输入10个字符,统计其中数字字符的个数。 ------------------------------------------------------*/ #include intmain() { inti,sum=0; charc; for(i=11;i>=2;i--) { /**********ERROR**********/ c=gets(); if(c<'0'||c>'9') /**********ERROR**********/ break; ++sum; } printf("sum=%d",sum); return0; } 【改错1】 【参考答案】 c=getchar(); ============================================================ 【改错2】 【参考答案】 continue; =========================================== 六、程序填空 1、功能: 从键盘上输入2名学生4门课成绩,求每个学生的平均成绩,并统计不及格门次。 ------------------------------------- #include #include"math.h" intmain() { inti,j,n=0; floatx,sum,avg; for(i=1;i<=2;i++) { /***********FILL***********/ ____________; for(j=1;j<=4;j++) { scanf("%f",&x); if(x<60)n++; /***********FILL***********/ ___________; } avg=sum/4.0; printf("\navgofNO.%dis%5.2f",i,avg); } printf("\n%d",n); return0; } 【空1】 【参考答案】 sum=0 =========================================== 【空2】 【参考答案】 sum=sum+x sum+=x =========================================== 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)_______; /***********FILL***********/ s+=________; k++; } if(k! =0) { ave=s/k; printf("%d,%f\n",k,ave); } return0; } 【空1】 【参考答案】 continue =========================================== 【空2】 【学生答案】 s+=________; 【参考答案】 a[i] ===========================================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北航 语言
![提示](https://static.bingdoc.com/images/bang_tan.gif)