《C语言程序设计 笔试试卷(三).docx》由会员分享,可在线阅读,更多相关《C语言程序设计 笔试试卷(三).docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计 笔试试卷(三)考试时间:120分钟注意:所有答案必须书写在答卷纸上,否则不给分!一、 选择题(每小题1.5分,共60分)1、在C语言中,不正确的int类型的常数是( )。A) 32768 B) 0 C) 037 D) 0xAF2、以下程序输出的结果是( )。main()int a=65535; printf(du,a,a);A) -1 -1 B) 65535 65535 C) -1 65535 D) 65535 -l3、能正确表示a和b同时为正或同时为负的逻辑表达式是( )。A) (a=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b04、下述合法的C语言的字符常量
2、是( )。A)A B)65 C)A D)t5、以下程序的输出结果是( )。main()int a=5,b=4,c=6,d; printf(dn,d=ac?(ac?a:c):(b);A) 5B) 4 C) 6D) 不确定6、以下程序中,while循环的循环次数是( )。main()int i=0:while(i10)if(i1) continue; if(i=5) break; i+: A) 1B) 10 C) 6 D) 死循环,不能确定次数7、x为奇数时值为“真”,x为偶数时值为“假”的表达式是:( )。 A) !(x%2=1) B) x%2=0 C) x%2 D) !(x%2)8、以下程序的
3、输出结果是( )。#includemain()int i=0,a=0;while(i20)for(;)if(i10)=0) break; elsei-:i+=11;a+=i;printf(dn,a);A) 21 B) 32 C) 33 D) 119、以下程序的输出结果是( )。intf()static int i=0; int s=1: s+=i;i+; return s;main()int i,a=0; for(i=0;i5;i+) a+=f(); printf(dn,a);A) 20 B) 24 C) 25 D) 1510、有以下程序段:int a10=1,2,3,4,5,6,7,8,9,
4、10,*p=&a3,b;b=p5;b中的值是( )。A) 5 B) 6C) 8 D) 911、在C语言中,形参的缺省存储类是( )。A) autoB) register C) staticD) extern12、以下不能正确进行字符串赋初值的语句为( )。A) charstr5= good! B) charstr=good! C) char*str=good! D) charstr5=g,o,o,d13、若有定义:int aa8;,则以下表达式中不能代表数组元素aa1的地址的是( )。A) &aa0+l B) &aa1C) aa0+D) aa+114、有以下程序段 int m=0,n=0; c
5、har c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是( )。A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015、下面叙述中正确的是( )。A) 全局变量的作用域一定比局部变量的作用域范围大B) 静态类别变量的生存期贯穿于整个程序的运行期间C) 函数的形参都属于全局变量D) 未在定义语句中赋值的auto变量和static变量的初值都是随机值16、若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是( )。A) 1.4 B) 1 C) 2
6、.0 D) 217、以下程序的输出结果是( )。int x=3;main()int i; for(i=l;ix;i+) incre();incre() static int x=l;x*=x+l:printf(d,x);A)33B)22C)26D)2518、下列程序输出结果是( )。 main() int i; for(i=1;i=5;i+) if(i%2) printf(*); else continue; printf(#); printf($n); A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$19、有以下程序:#define f (x) X*Xmain()int
7、 i;i=f(4+4)f(2+2);printf(dn,i);程序运行后的输出结果是( )。A) 28B) 22 C) 16 D) 420、 若要打开A盘上的user子目录下名为abctxt的文本文件进行读、写操作,下面符合此要求的函数调用是( )。A) fopen(A:userabc.txt,r) B) fopen(A:userabc.txt,r+)C) fopen(A:userabc.txt,rb)D) fopen(A:userabc.txt,w)21、请读程序:#includefunc(int a,int b)int c; c=a+b; return c; main()int x=6,y
8、=7,z=8,r; r=func(x-,y+,x+y),z-); printf(dn,r);上面程序的输出结果是( )。A) 11 B) 20 C) 2l D) 3122、请读程序:#includemain()int a,b; for(a=l,b=1;a=20) break; if(b3=1) b+=3;continue; b-=5:printf(dn,a);上面程序的输出结果是( )。A) 7 B) 8 C) 9 D)1023、下列选项中不能正确定义结构体的是( )。A) typede fstruct B) struct color c1 int red; int red; int gree
9、n; int green; int blue; int blue; color; ; color cl;C) struct color D) struct int red; int red; int green; int green; int blue; int blue; cl; cl;24、设有static char str=Beijing;则执行printf(dn,strlen(strcpy(str,China);后的输出结果为( )。A) 5 B) 7 C) 12 D) 1425、 若有以下程序:main()int k=2,i=2,m; m=(k+=i*=k); printf(d,dn
10、,m,i);执行后的输出结果是( )。A) 8,6 B) 8,3 C) 6,4 D) 7,426、有以下程序#includemain() char p=abcde0fghjik0; printf(dn,strlen(p);程序运行后的输出结果是( )。A) 12 B) 15 C) 6 D) 527、若有一些定义和语句#include int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是( )。A) *q=0; B) w=p; C) *p=&a; D) *p=*w;28、程序中头文件typel_h的内容是:#define N 5#de
11、fine Ml N*3程序如下:#includetype1.h#define M2 N*2main() int i; i=M1+M2; printf(dn,i);程序编译后运行的输出结果是( )。A) l0 B) 20 C) 25 D) 3029、以下程序执行后sum的值是( )。main()int i,sum; for(i=1;i0;i-) sum(&aai); printf(dn,aa0);程序运行后的输出结果是( )。A) 4 B) 3 C) 2 D) 131、在c语言中,引用数组元素时,其数组下标的数据类型允许是( )。A) 整型常量 B) 整型表达式C) 整型常量或整型表达式 D)
12、任何类型的表达式32、有以下程序段int x=3:doprintf(d,x-=2);while(!(-x);其输出结果是( )。A) l B) 30 C) 1-2 D) 死循环33、设变量定义为:int n,*p;char ch,*q,*g;,则语句( )是不正确的。 A)p=&n;g=q=&ch; B)p=&n;q=&ch; C)p=&n;g=&ch D)p=&n;q=&ch;g=p;34、设变量定义如下,则对其中的结构分量num正确的引用是( )。 struct studentint num; char name20; float score; stud10; A)stud1.num =
13、10; B)student.stud.num = 10; C)struct.stud.num = 10; D)struct.student.num = 10;35、下列程序段的输出结果是( )。 int t,a3 = 10,5,1; int *p; for(p =a; pa+3; p+) t =t + *p; printf(“%d” ,t); A)15 B)16 C)10 D)不确定36、下列程序的输出结果是( )。main()char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(d,*-p);A) 非法 B) a4的地址 C) 5 D) 337、当调用函数时
14、,实参是一个数组名,则向函数传送的是( )。A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值38、有以下程序段,其中n为整型变量,执行后输出结果是:( )。 n=20; while(n-); printf(“%d”,n); A) 2 B) 10 C) -1 D) 039、有以下程序: main() int x=0,y=0; while(x5&+y) y-,x+; printf(“%d,%d”,y,x); 程序的输出结果是:( )。 A) 0,5 B) 1,5 C) 0,4 D) 1,440、若有以下程序: #define N 50void fun( in
15、t a, int n, int m ) int i,j; for(i=n;im;i+) ai-1=ai; main() int i, aN=1,2,3,4,5,6; fun( a,4,10 ); for(i=0;i6;i+) printf(“%d”,ai); 程序执行后的输出结果是:( )。A) 123560 B) 123456C) 134560 D) 123345二、填空题(每空2分,共40分)1、下列程序执行后输出的结果是【1】。f(int a) static c=0; c=a+c+:return(c);main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);pri
16、ntf(dn,k);2、下面程序执行后输出的结果是【2】。int m=13:int fun(int x,int y)int m=3; return(x*y-m);main()int a=7,b=5; printf(dn,fun(a,b)m);3、下面程序的功能是输出以下形式的金字塔图案是: * * * *main( )int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j= 【3】_;j+) printf(“*”); printf(“n”);4、如果在运行以下程序时从键盘输入:bcd。输出结果【4】。#includem
17、ain()char i=a,j=a,k=a; scanf(c*cc,&i,&j,&k); printf(ccc,i,j,k);5、设有如下程序:main()int nl,n2;scanf(%d,&n2);while(n2!=0)nl=n2%l0; n2=n2/10;printf(%d,n1);程序运行后,如果从键盘上输入1298,则输出结果为 【5】。6、以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。#include “string.h”void fun(char str) int i,j,k; for(i=0,j= 【6】 ; ij; i+, 【7】 ) k=stri; stri
18、=strj; strj=k; 7)以下函数用于求出一个24矩阵中的最大元素值。max_value(arr)int arr4;int i,j,max;max=arr00;for(i=0;imax) max= 【10】 ;return(max);8、下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请补充完整。main()int i,j;for(i=0;【11】;i+) j=i*10+6;if(【12】) continue;printf(%d,j);9、以下函数的功能是删除字符串s中的所有数字字符。请填空。viod dele(char *s) int n=0,i;for(i=0;si
19、;i+) if( 【13】 )sn+=si;sn= 【14】 ;10、以下函数fun用于求两个整数a和b的最大公约数。fun(a,b)int a,b;int i,j,m,n;if(ab)m=a;a=b;【15】;i=aj=b;while(n=【16】)!=O)j=i;i=【17】;retum(i);11、有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。#define N 100main()float aN+1,x;int i,p;for(i=0;iN;i+)scanf(f,&ai);scanf(f,&x);for(i=0,p=N;iN;i+)if(xai)【18】;break;for(i=N-1;【19】;i-)ai+1=ai;ap=x;for(i=0;【20】;i+) printf(8.2f,ai);if(i5=0)printf(n);11