二级C语言笔试试题(A卷)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(!a) x--; else if(b) if(c) x=3; else x=4 printf(“%d\n”,x); } (A)34 (B)4 (C)35 (D)3 二、基本概念选择填空题(本大题后面有备选项A~L,请选择合适的备 选项,并将其填入答题纸对应序号处,每空2分,共10分) 1、在C程序中引用标准库中的数学类函数时,需要在程序的预处理部分 包含 ① 头文件。 2、在C程序中,如果要表示的条件是,“a或b之一为0,但a和b不同时为 零”,则可将其逻辑关系描述为: ② 。 3、在C语言中,函数返回值的数据类型取决于 ③ 。 4、函数调用中,数组名作为形参时实现的是传地址调用,而数组元素 作为形参时实现的是 ④ 调用。 5、字符串常量和字符数组都占用一段 ⑤ 的存储单元。 备选项: (A)a+b!=0&&a*b=0 (B)math.h (C)men.h (D)传地址 (E) stdio.h (F)独立 (G)函数返回值类型 (H)传值 (I){} (J)连续 (K)定义该函数时所指定的数据类型 (L)a+b==0&&a*b!=0 三、程序填空题(每空2分,共20分) 1、下面程序的功能是统计从键盘输入的字符序列中每个大写字母的个 数。程序执行时用‘#’字符作为输入结束标志,请填空完成程序。 #incude<stdio.h> viod main() { int num[26]={0},i; char c; while (( ① )!=’#’) if (c>=’A’&&c<=’Z’) num[c-65]+=1;
二级C语言笔试试题(A卷)
(共100分) 注意事项:1.请将一题的答案填涂在答题卡上。 2.请将二、三、四、五题的答案做在答题纸上。 1、 单项选择题(每小题1分,共20分) 1.若变量已正确定义并赋值,一下符合C约言语法的表达式是( )。 (A)A=b+1 (B)a=b=c+2 (C)Int 18.5%3 (D)a=a+7=c+b 2.C语言中,要求参与运算的对象必须是整型的运算符是( )。 (A)%= (B)/ (C)= (D)<= 3.已知有下面代码段,则所列选项中叙述正确的是( )。 Int t=0; While(t=1) {…} (A)循环控制表达式不合法 (B)循环控制表达式的值为0 (C)循环控制表达式的值为1 (D)以上说法都不对 4.设有语句序列:float a,b,c;scanf(“%f%f%f”,&a,&b,&c);,若要求分别给变 量a、b、c赋值10.0、22.0、33.0,则下面的输入形式是( )。 (A)10<回车>22<回车>33<回车> (B)10.0,22.0,33.0<回车> (B)10.0<回车>22.0 33.0<回车> (D)10 22<回车>33<回车> 5.下面程序执行后的输出结果是( )。 #include<stdio.h> Void main() { int i=1,j=1,k=2; If ((j++| |k++) &&i++) Printf(“%d,%d,%d\n”,I,j,k); } (A)1,1,2 (B)2,2,1 (C)2,2,2 (D)2,2,3 6.下面沉痼执行后的输出结果是( )。 #include<stdio.h> Void main() { int n=9; While(n>6)
{ n--; Printf(“%d”,n); } } (A)987 (C)8765 (B)976 (D)876
7.下面所列选项中,构成死循环的程序段是( )。 (A) int i=100; (B) for(;;) While(1) puts(“a”); { i=1+1; If(i>100) Break; } (C) int k=10000; (D) int s=36; Do while(s) { k--; --s; Printf(“%d\n”,k); }while(k。10000); 8.设有以下说明语句,则下面所列选项中叙述不正确的是( )。 Struct stu { int a; Float b; }stutype; (A) struct是结构体类型的关键字 (B) struct stu是用户定义的结构体类型 (C) stutype是用户定义的结构体类型名 (D) a和b都是结构类型题成员名 9.设有变量定义int x,y;,则表达式(x=2,y=5,y--,++x+y)的值是( )。 (A)8 (B)5 (C)6 (D)7 10.为了表达关系100≧x≧0;,应使用下列C语言表达式中的( ) (A)(x>=0) and(x<=100) (B)(x>=0) &&(100>=x) (C)(100>=X>=0) (D)(x>=0) &(100>=x) 11.设有C语句:intx[3][3]={9,8,7};,则数组元素x[0][1]和x[2][2]的 值是( )。 (A)9和7 (B)8和0 (C)7和0 (D)8和 随机数
for(i=0;i<26;i++) if(num[i]); printf(“%c:%d\n”, ②
,num[i]);
Βιβλιοθήκη Baidu
} 2、下面程序的功能是:从整数10~99之间选出哪些能被3整除、且有一 位数字是5的数存放在p数组中,并输出这些数的个数。请填空完成程 序。 #include <stdio.h> viod main() { int p[100],k,a1,a2,i ③ ; for(k=10;k<=99;k++) { a2=k/10; a1=k-a2*10; if ( ④ ) { p[i]=k; i++; } } printf(“数据个数是:%d\n”,i); } 3、函数pi 的功能是根据下面的公式求出满足精度要求的π值,请填空 完成函数。 double pi(double eps) { double s=0.0,t=1.0; int n,flg=1; for( ⑤ ;t>eps;n++) {s=+flg*t; t=1.0/(2*n+1); flg=-flg; } return ⑥ ; } 4、下面程序的功能是:从键盘上输入一个整数,将其插入一个整数, 将其插入到一个元素按升序排列的整型数组中,插入后的数组元素值仍 然保持按升序排列;请填空完成程序。 #include<stdio.h>
void main() { int a[10]={2,5,8,10,15,20,28,27}; int x,i,n=8; scanf(“%d”,&x); for (i=n-1;i>0;i--) if( ⑦ ) a[i+1]=a[i]; else break; ⑧ ; n++; for(i=0;i<n;i++) printf(“%5d”,a[i]); printf(“\n”); } 5、下面程序的功能是求整数100~200之间的所有素数,请填空完成程 序。 #include<stdio.h> #include<math.h> void main() { int m, n,k; for(m=101;m<200;m=m+2) { k= ⑨ ; for(n=2;n<=k;n++) if( ⑩ ) break; if(n>k) preatf(“%d\n”,m) } } 四.阅读程序题(每小题5分,共30分) 1、阅读下面程序,给出程序执行后的输出结果。 #include <stdio.h> viod main()
{ int x; Int *y; }*p; Int dt [4]={1,2,3,4}; Struct st aa[4]={5,&dt[0],6, &dt[1],7, &dt[2],8, & dt[3]}; void main () { p=aa; printf ("%d",++p->x); printf ("%d",(++p)->x); printf ("%d\n", ++(*p->y)); } 五.程序设计题(每小题10分,共20分) 1.函数的原型为:double aver(double a[],int n,double *max, double *min);,其公式用主函数如下所示,请编制函数 aver。 #include 〈stdio. h〉 void main () { double aver(double a[],int n,double *max, double *min); double av[10],maxv, minv, averv; int i; for (i=0; i<10;i++) scanf("%lf",&av[i]); averv=aver(av, 10,&maxv,&minv); printf("maxv=%lf, minv=%lf, averv=%lf\n", maxv,minv,averv); } 2 .编制程序实现功能:统计指定文本文件 mydata. Txt 中英语字母的 个数。
if(*p>*s) s=p; return *s; } void main() { int x[5]={12,21,13,6,18}; printf(“%d\n”,find(x,5)); } 4. 阅读下面程序,给出程序执行后的输出结果。 #include 〈stdio. h〉 void main () { int fun (int a); int a=2,j,k; for (j=0;j<2;j++) k=fun (a++); printf ("%d\n",k); } Int fun (int a) { int b=0; atatic int c=3; a=c++,b++; return a; } 5.阅读下面程序,给出程序执行后的输出结果。 #include 〈stdio. h〉 Void main () { char *arr="abcdefghijk",*p; for (p=&arr [5];p>=arr; p--) printf("%2c",*p); printf("\n"); } 6. 阅读下面程序,给出程序执行后的输出结果。 # include 〈stdio. h〉 struct st
12.设有C语言char *ptr,a;下面C语言中正确的是( )。 (A)a=ptr (B)ptr=ptr/2 (C)ptr=*a (D) ptr=20 13.设有C语句double x,*y=&x,**z=&y;,则变量x等价的是( )。 (A)z (B)*z (C)**z (D)&z 14.C标准库函数strcmp()的功能是( )。 (A)测试字符串的长度 (B)复制字符串 (C)比较两个字符串的大小 (D)连接字符串 15.字符串\\21\t\\\123456的长度是( )。 (A)8 (B)9 (C)11 (D)1 16.下面程序段执行后输出的救国是( )。 #define f(x,y) x+y Int a=2,b=3; Printf(“%d”,f(a,b)*(a,b)); (A)36 (B)25 (C)11 (D)13 17.c语言表达式sizeof(‘a’+10)执行结构的数据类型是( )。 (A) int (B)flaoat (C) double (D)char 18.设有定义: int x=3,y=2;,则条件表达式x>y?1:2:3的值为( )。 (A)1 (B)1.0 (C)2.3 (D)2 19.下面程序段执行后输出的结果是( )。 Char s[4] = “cba”; Char *p=s; Printf(“&c,*p+1); (A)字符C (B)字符B (C)字符A (D) 字符D 20.下面程序执行后输出的结果是( )。 #include <sstdio.h> Xoid main() { int a,b,c,x; a=b=c=0; x=35;
{ int n,r; n=13579; do { r=n%10; printf(“%d”,r); n/=10; }while(n); printf(“\n”); } 2、阅读下面程序,给出程序执行后的输出结果。 #include<stdio.h> viod sub(int*,int *); viod main() { int a[]={1,2,3,4},i; int x=0; for(i=0;i<4;i++) { sub(a,&x); printf(“%d”,x); } printf(“\n”); } void sub(int *s,int*y) { static int t=3; *y=s[t]; t--; } 3、阅读下面程序,给出程序执行后的输出结果。 #include <stdio,h> find(int *a,int n) { int *p,*s; for(p=a;s=a;p-a<n;p++)