收藏 分销(赏)

福建省C语言二级考试模拟试卷之二.doc

上传人:xrp****65 文档编号:5916832 上传时间:2024-11-23 格式:DOC 页数:14 大小:440KB 下载积分:10 金币
下载 相关
福建省C语言二级考试模拟试卷之二.doc_第1页
第1页 / 共14页
福建省C语言二级考试模拟试卷之二.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
福建省C语言二级考试模拟试卷之二 窗体顶端 一、选择题。 (本大题共40个选项,【1】~【40】每个选择项1.5分,共60分) 1.属于整型常量的是【1】。 【1】 (A)12 (B)12.0 (C)-12.0 (D)10E10 2.char型常量在内存中存放的是【2】。 【2】 (A)ASCII代码值 (B)BCD代码值 (C)内码值 (D)十进制代码值 3.设整型变量a为5,使b不为2的表达式是【3】。 【3】 (A)b=a/2 (B)b=6-(--a) (C)b=a%2 (D)b=a>3?2:1 4.执行语句“x=(a=3,b=a--);”后,x、a、b的值依次为【4】。 【4】 (A)3,3,2 (B)3,2,2 (C)3,2,3 (D)2,3,2 5.sizeof(double)的结果值是【5】。 【5】 (A)8 (B)4 (C)2 (D)出错 6.设整型变量x的值为35,则表达式“(x&15)&&(x|15)”的值是【6】。 【6】 (A)0 (B)1 (C)15 (D)35 7.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是【7】。 【7】 (A)0 (B)4 (C)-4 (D)2 8.设f为实型变量,下列表达式中不是逗号表达式的是【8】。 【8】 (A)f=3,4,5 (B)f=(3,2,1,0) (C)f>=3,f<2,0 (D)f=2,f=1 9.设有无符号短整型变量i、j、k,i值为013,j值为0x13。执行语句“k=~i|j>>3;” 后,k的值是【9】。 【9】 (A)06 (B)0177776 (C)066 (D)0177766 10.指出下列语句中有实际意义的语句是【10】。 【10】 (A)a||b; (B)a!=b; (C)a+=b; (D)getchar(a); 11.在16位PC机上执行下列语句后,a的16进制值是【11】,b的值是【12】,c的值是【13】,d的值是【14】。 int a,b,c; long d; b=(a=32767,a+1); c=d=0xffff; 【11】 (A)0xffff (B)0x7fff (C)0xfffe (D)0x7ffe 【12】 (A)32767 (B)32768 (C)0 (D)-32768 【13】 (A)65535 (B)32768 (C)0 (D)-1 【14】 (A)65535 (B)32768 (C)0 (D)-1 12.指出下面正确的输入语句是 【15】 。 【15】 (A)scanf("a=b=%d",&a,&b); (B)scanf("a=%d,b=%f",&m,&f); (C)scanf("%3c",c); (D)scanf("%5.2f",&f); 13.C语言用 【16】 表达逻辑“真”值。 【16】 (A)true (B)t或y (C)非零整型值 (D)整型值0 14.下列循环结构中,【17】不是无限循环。 【17】 (A)for(i=1,s=0;;i++) (B)i=10; s=s+i; while(1) { i=i%10+1; if(i>10) break; } (C)i=0; (D)i=100; do while(i++%2+i%2) { i++; ++i; }while(i>=0); 15.执行下列程序段后,x的值是【18】,i的值是【19】。 int i,x; for(i=1,x=1;i<=20;i++) { if(x>=10) break; if(x%2==1) { x+=5; continue; } x-=3; } 【18】 (A)6 (B)7 (C)10 (D)14 【19】 (A)4 (B)5 (C)6 (D)7 16.下列程序: #include <stdio.h> #define N 6 main() { char s[N]; int i=0; for(;i<N;s[i]=getchar(),i++); for(i=0;i<N;putchar(s[i]),i++); } 运行时输入以下三行字符,每行输入都是在该行的首列开始: a<CR> b<CR> cdef<CR> 程序输出的结果是【20】。 【20】 (A) abcdef (B) a (C) a (D) a b b b c cd cdef d e f 17.下列程序正确的运行结果为【21】。 struct s { int n; int *m; } *p; int d[5]={10,20,30,40,50}; struct s arr[5]= { 100,&d[0], 200,&d[1], 300,&d[2], 400,&d[3], 500,&d[4] }; #include <stdio.h> main() { p=arr; printf("%d\n",++p->n); printf("%d\n",(++p)->n); printf("%d\n",++(*p->m)); } 【21】 (A) 101 (B) 101 200 20 21 30 (C) 200 (D) 100 101 101 21 10 18.设有以下一程序段: char s[]="Hello"; char *p; p=s; 执行完上面的程序段后,*(p+5)的值为【22】。 【22】 (A)'o' (B)'\0' (C)'o'的地址 (D)不确定的值 19.以下程序输出两个整数中较大的数,两个整数由键盘输入。请根据需填空的项目顺序从对应的选择 项顺序组中选择正确内容填入程序的横线内,使其能完成这一操作。 #include <stdio.h> main() { int a,b,*p1,*p2; p1=(int *)malloc(sizeof(int)); p2=【23】malloc(sizeof(int)); scanf("%d%d",【24】); if(*p2>*p1) *p1=*p2; printf("max=%d\n", 【25】); free(p1); free(p2); } 【23】 (A)int (B)int* (C)(int) (D)(int *) 【24】 (A)*p1,*p2 (B)p1,p2 (C)&p1,&p2 (D)&a,&b 【25】 (A)*p1 (B)*p2 (C)p1 (D)p2 20.以下定义与 【26】 中的定义等价。 int *p[4]; 【26】 (A)int p[4] (B)int *p (C)int *(p[4]) (D)int (*p)[4] 21.若有以下定义和语句,则 【27】 是对a数组元素的错误引用。 int a[12]={0},*p[3],**pp,i; for (i=0;i<3;i++) p[i]=&a[i*4]; pp=p; 【27】 (A)a[12] (B)p[2][3] (C)a[10] (D)pp[0][1] 22.以下函数调用语句中有 【28】 个实参。 func((a1,a2,a3),(a4,a5)); 【28】 (A)2 (B)5 (C)1 (D)不合法 23.#include <stdio.h> main() { int a,b,c; a=165,b=65; c=mult(a,b); printf("%d*%d=%d\n",a,b,c); } mult(x,y) int x,y; { return(x*y); } 程序运行结果是:【29】,函数调用采用【30】传递数据。 【29】 (A)0 (B)165*65=10725 (C)165*65=0 (D)程序不正确 【30】 (A)地址传送方式 (B)数据复制方式 (C)全局变量 (D)内部变量 24.#include <stdio.h> main() { int f(),(*i)(); int a=100,b=500; int c; i=f; c=(*i)(b,a); printf("%d-%d=%d\n",b,a,c); } f(a,b) int a,b; { return (b-a); } 程序运行结果是:【31】。 【31】 (A)500-100=400 (B)500-100=-400 (C)500-100=0 (D)程序有错误 25.#define PI 3.1415926 #include <stdio.h> main() { printf("PI=%f\n",PI); } 程序运行结果为【32】。 【32】 (A)3.141593=3.141593 (B)PI=3.141593 (C)3.131593=PI (D)程序有错误,无结果。 26.格式1 #include "文件名" 格式2 #include <文件名> 下面4个结论,【33】是正确的。 【33】 (A)格式1中的文件名能带路径,而格式2不能 (B)格式1中的文件名不能带路径,而格式2可以 (C)如果被包含文件在当前目录下,两种格式都能用 (D)如果文件名中不带路径,格式1能搜索当前目录和C编译环境指定的标准目录,而格式2不行。 27.使用分别编译方法时,在不同的编译单位之间能传递的变量和函数是【34】。 【34】 (A)内部变量,内部函数 (B)外部static型变量,外部函数 (C)外部缺省存储类型变量,外部函数 (D)所有变量和函数 28.设有一结构体类型变量定义如下: struct date { int year; int month; int day; } struct worklist { char name[20]; char sex; struct date birthday; } person; 若要对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是:【35】。 【35】 (A)year=1976 (B)birthday.year=1976 (C)person.birthday.year=1976 (D)person.year=1976 29.设有一联合体变量定义如下: union data { long w; float x; int y; char z; }; union data beta; 执行下面赋值语句后,正确的联合体变量beta的值是【36】。 beta.w=123456; beta.y=888; beta.x=3.1416; beta.z='*'; 【36】 (A)123456 (B)888 (C)3.1416 (D)'*' 30.整数字输出函数putw(32767,fpoint)的功能是:【37】。 【37】 (A)读取fpoint指针所指文件中的整数字32767。 (B)将两字节整数32767,输出到文件fpoint中。 (C)将两字节整数32767输出到fpoint所指的文件中。 (D)从文件fpoint中读取整数字32767。 31.以读写方式打开一个已有的文本文件file1,下面fopen函数正确的调用方式是:【38】。 【38】 (A)FILE *fp (B)FILE * fp fp=fopen("file1","r") fp=fopen("file1","r+") (C)FILE *fp (D)FILE * fp fp=fopen("file1","rb") fp=fopen("file1","rb+") 32.下列程序的运行结果为【39】。 #include <stdio.h> union p { int i; char c[2]; } x; main() { x.c[0]=13; x.c[1]=0; printf("%d\n",x.i); } 【39】 (A)208 (B)14 (C)13 (D)209 33.运行下面程序后的w值为【40】。 main() { int w=2,k; for(k=0;k<3;k++) { w=f(w); printf("%d\n",w); } } f(x) int x; { int y=0; static z=3; y++; z++; return(x+y+z); } 【40】 (A)20 (B)7 (C)28 (D)13 二、请正确填充下面的过程或程序的划线部分,使其完成所要求的功能: (本大题共20个空,每个空2分,共40分。请将答案写在答题卡对应栏中,答在试卷上不得分) 一、完成下面的程序,使它能够输出101~1000之间的所有素数。 #include <stdio.h> main() { int i; for(i=101;i<=1000;i++) if(isprime(【1】 )) printf("%d",i); printf("\n"); } #include <【2】 > isprime(n) int n; { int i; for(i=2;i<=sqrt(n);i++) if(【3】) return ( 0 ); return( 【4】 ); } #include <stdio.h> #include <math.h> double s(fun,a,b) double (*fun)(),a,b; { double t,h; int i,n=100; t=0.5*( 【5】 (a)+ 【6】 (b)); h=(b-a)/(double)(n); for(i=1;i<=n-1;i++) t=t+ 【7】 ; t=t* 【8】 ; return ( 【9】 ); } double f(x) double x; { return (x*x+sin(x)+2.0); } main() { double y,(*fx)(); fx= 【10】 ; y=s(fx,0.0,4.0); printf("%f\n",y); } 三、以下程序能从所读入的若干字符串中,找出最大的一个串并输出该串(用串****作为结束输入的标志)。 #include <stdio.h> #include <string.h> main() { char ss[10][5],*ps; int n; readin(ss,&n); findmax(ss,n,&ps); printf("max=%s\n",ps); } readin(a,num) char (*a)[5]; int 【11】 ; { int i=0; gets(a[i]); while(!strcmp(a[i],"****")==0){ 【12】 ;gets(a[i]);} 【13】 =i; } findmax(a,num,max) char (*a)[5], 【14】 ; int num; { int i; for(*max=a[0],i=1;i<num;i++) if(strcmp(a[i],*max)>0) 【15】 ; } 四、设有一描述零件加工的数据结构如下: 零件名pname 工序号wnum 指针next 下面程序完成建立10道工序的链表,请将程序补充完整。 #include <stdlib.h> #include <stdio.h> #define NULL 0 #define LEN sizeof(struct parts) struct parts { char pname[10]; int wnum; 【16】 ; } main() { struct parts *head,*p; int i; head=NULL; for(i=0;i<10;i++) { p= 【17】 ; scanf("%s,%d",&p->pname,&p->wnum); p->next=head; head=p; } } 五、下面程序完成从磁盘文件stu.DAT中读取n个学生的姓名、学号、成绩后在屏幕上显示输出。 #include <stdio.h> #define N 100 struct student { char name[20]; int no; int score; } stud[N]; main() { FILE *fp; int i; if ( 【18】 ) printf("Cannot open file\n"); for(i=0;i<N;i++) { 【19】 ; printf("name:%sNo:%d,stud[i].name,stud[i].No,stud[i].score); } 【20】 ; }   窗体底端
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服