专升本C语言程序设计试卷.pdf
《专升本C语言程序设计试卷.pdf》由会员分享,可在线阅读,更多相关《专升本C语言程序设计试卷.pdf(139页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 专升本 C 语言程序设计试卷(二)一、单项选择题(130 题每小题 1 分,3145 题每小题 2 分,共 60 分)1.以下合法的用户自定义标识符是(D)。A、b-b B、float C、<fr>D、_isw 2.若变量已正确定义并赋值,以下不符合 C 语言语法的表达式是(B)。A、a*b/c;B、3.14%2 C、2,b D、a/b/c 3.下列不正确的字符常量是(C)A、'n'B、'1'C、a D、'101'4.在 C 语言中,表示逻辑值“真”用(B)A、1 B、非 0 的数 C、非 1 的数 D、大于 0 的数 5.把 x
2、、y 定义成 float 类型变量,并赋同一初值 3.14 是(C)A、float x,y=3.14;B、float x,y=2*3.14;C、float x=3.14,y=x=3.14;D、float x=y=3.14;6.若变量已正确定义,值不为 2 的表达式是(C)A、2&3 B、1<<1 C、a=2 D、13 7.若变量已正确定义,和语句“if(a>b)k=0;else k=1;”等价的是(C)A、k=(a>b)?1:0;B、k=a>b;C、k=a<=b;D、a<=b?0:1;8.设变量定义为“int a,b;”,执行下列语句时,若 a 和 b
3、 的值都是 10,则应输入(D)scanf(a=%d,b=%d,&a,&b);A、10 10 B、10,10 C、a=10 b=10 D、a=10,b=10 9.下列程序的输出结果是(D)fun(int a,int b,int c)c=a*b;void main()int c;fun(2,3,c);printf(”%dn”,c);2 A、0 B、1 C、6 D、无法确定 10.在 C 程序中,若对函数类型未加说明,则函数的隐含类型为(A)A、int B、double C、void D、char 11.表达式 strlen(”hello”)的值是(B)A、4 B、5 C、6 D、7 12.设变量
4、定义为“int a4;”,则不符合 C 语言语法的表达式是(D)A、*a B、a0 C、a D、a+13.设变量定义为“int x,*p=&x;”,则&*p 相当于(A)A、p B、*p C、x D、*&x 14.若变量已正确定义,不能使指针 p 成为空指针的是(A)A、p=EOF B、p=0 C、p=D、p=NULL 15.对于以下的变量定义,不符合 C 语言语法的表达式是(D)struct node int len;char*pk;x=2,right,*p=&x;A、p->pk B、*p.pk C、*p->pk D、*x.pk 16.有如下程序 int runc(int a,i
5、nt b)return(a+b);main0 int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);该程序的输出的结果是(D)A)12 B)13 C)14 D)15 17.对于基类型相同的两个指针变量之间,不能进行的运算是(C)3 A)<B)=C)+D)-18.有如下程序 long fib(int n)if(n>2)return(fib(n-1)+fib(n-2);else return(2);main0 printf(“%dn”,fib(3);该程序的输出结果是(B)A 2 B 4 C 6 D 8 19.有如下定义 struc
6、t personchar name9;int age;strict person class10=“Johu”,17,“Paul”,19 “Mary”,18,“Adam 16,;根据上述定义,能输出字母 M 的语句是(D)A)prinft(“%cn”,class3.mane);B)pfintf(“%cn”,class3.name1);C)prinft(“%cn”,class2.name1);D)printf(“%cn”,class2.name0);20.以下所列的 C 语言常量中,错误的是(B)A)0 xFF B)1.2e0.5 C)2L D)72 21.有以下程序段 int k=0 whil
7、e(k=1)k+;while 循环执行的次数是(A)A)无限次 B)有语法错,不能执行 C)一次也不执行 D)执行 1 次 4 22.以下程序的输出结果是(C)A)0 B)29 C)31 D)无定值 fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,a);printf(“%d”,a);23.下列程序段的输出结果是(A)A)2 1 4 3 B)1 2 1 2 C)1 2 3 4 D)2 1 1 2 void fun(int*x,int*y)printf(“%d%d”,*x,*y);*x=3;*y=4;main()int x=1,y=2;
8、fun(&y,&x);printf(“%d%d”,x,y);24.当调用函数时,实参是一个数组名,则向函数传送的是(B)A)数组的长度 B)数组的首地址 C)数组每一个元素的地址 D)数组每个元素中的值 25.以下程序的输出结果是(A)A)1 B)2 C)3 D)4 long fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);return s;5 main()printf(“%ldn”,fun(3);26.以下程序的输出结果是(B)A)16 B)2 C)9 D)1#define SQR(X)X*X main()int a=16,k=2,m=1;
9、a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);27.有以下程序 main()int m=3,n=4,x;x=-m+;x=x+8/+n;printf(%dn,x);程序运行后的输出结果是:(D)A)3 B)5 C)-1 D)-2 28.以下叙述中正确的是:(A)A)构成 C 程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其它函数之前 D)所有被调用的函数一定要在调用函数之前进行定义 29.以下选项中非法的表达式是:(D )A)0<=x<100 B)i=j=0 C)(char)(65+3)D)x+1=x+1 30.下列条
10、件语句中,功能与其他语句不同的是:(D)A)if(a)printf(%dn,x);else printf(%dn,y);6 B)if(a=0)printf(%dn,y);else printf(%dn,x);C)if(a!=0)printf(%dn,x);else printf(%dn,y);D)if(a=0)printf(%dn,x);else printf(%dn,y);31.以下不能定义为用户标识符的是:(D )A)scanf B)Void C)_3com_ D)int 32.C 语言中用于结构化程序设计的三种基本结构是:(A)A)顺序结构、选择结构、循环结构 B)if、switch、b
11、reak C)for、while、do-while D)if、for、continue 33.若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量 a、b、c 的语句是:(A )A)scanf(%d%d%d,&a,&b,d);B)scanf(%d%d%d,&a,&b,&d);C)scanf(%d%d%d,a,b,d);D)scanf(%d%d%d,a,b,*d);34.若有定义:int aa 8;。则以下表达式中不能代表数组元 aa1的地址的是:(C )A)&aa0+1 B)&aa1 C)&aa0+D)aa+1 35.有以下程序 main()char str1
12、0=China,Beijing,*p=str;printf(%sn,p+10);程序运行后的输出结果是:(B)A)China B)Bejing C)ng D)ing 36.以下程序的输出结果是:(A )main()int a=0,i;for(i=1;i<5;i+)switch(i)case 0:case 3:a+=2;7 case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A)31 B)13 C)10 D)20 37.有以下程序#include<string.h>main(int argc,char*argv)int i,len=0;f
13、or(i=1;i<argc;i+=2)len+=strlen(argv);printf(“5dn”,len);经编译链接后生成的可执行文件是 ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是:(D )A)14 B)12 C)8 D)6 38.下列选项中正确的语句组是:(D )char s8;s=Beijing;B)char*s;s=Beijing;C)char s8;s=Beijing;D)char*s;s=Beijing;39.有以下程序 main()int a33,*p,i;p=&a00;for(i=0;i<9;i+)p=i+
14、1;printf(%d n,a12);8 程序运行后的输出结果是:(B )A)3 B)6 C)9 D)2 40.以下符合 C 语言语法的实型常量是:(C )A)1.2E0.5 B)3.14.159E C).5E-3 D)E15 以下程序段中与语句 k=a>b?(b>c?1:0):0;功能等价的是:(A )A)if(a>b)&(b>c)k=1;B)if(a>b)|(b>c)k=1;else k=0;else k=0;C)if(a<=b)k=0;D)if(a>b)k=1;else if(b<=c)k=1;else if(b>c)k=1;e
15、lse k=0;若程序中定义了以下函数 double myadd(double a,double b)return(a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:(A )A)double myadd(double a,b);B)double myadd(double,double);C)double myadd(double b,double a);D)double myadd(double x,double y);43.若 fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为:(A )A)0 B)1 C)-1 D)一
16、个非 0 值 44.下列关于 C 语言数据文件的叙述中正确的是:(D )A)文件由 ASCII 码字符序列组成,C 语言只能读写文本文件 B)文件由二进制数据序列组成,C 语言只能读写二进制文件 C)文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 45.有以下程序 main()int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;9 int i,s=0;for(i=0;i<4;i+)s+=aa1;printf(%dn,s);程序运行后的输出结果是:(B )A)11 B)19
17、C)13 D)20 二、填空题(每题 2 分,共 30 分)1.表示“xyz”的 C 表达式是_ x>=y&y>=z _。2.下列程序段的输出是_1_。printf(%on,010<<11);3.下列程序段的输出是_6,90_。int k;float s;for(k=0,s=0;k<7;k+)s+=k/2;printf(%d,%fn,k,s);4.下列程序段的输出是_5,25_。#define f(a,b,x)a*x+b printf(%d,%dn,f(3,2,1),f(6,5,f(3,2,1);5.下列程序段的输出是_*#*#_。main()int k;for(
18、k=1;k<5;k+)if(k%2)printf(*);else continue;printf(#);10 6.下列程序段的输出是_5 8_。#include<stdio.h>int f(int x)static y=1;y+;x+=y;return x;void main()int k;k=f(3);printf(%d%dn,k,f(k);7.下列程序段的输出是_5_。int *p,*q,k=5,j=6;q=&k;p=q;q=&j;printf(%d,*p);8.函数 void f(char s,char t)int k=0;while(sk=tk)k+;等价于 void
19、 f(char*s,char*t)while(_*s+=*t+_);9.下列程序段的输出是_ ne,s _。char*a2=one,two,*p=a;printf(%s,*(p+)+1);11 printf(%cn,*p-1);10.下列程序编译后生成 t.exe,运行 t input output zoo oil 的输出结果是_zoo_。void main(int argc,char*argv)int k;char*p=argv1;for(k=2;k<argc;k+)if(strcmp(argvk,p)>0)p=argvk;printf(%sn,p);11以下程序段的输出结果是
20、_11_ int i=9;printf(%on,i);12以下程序输出的结果是 0 main()int a=5,b=4,c=3,d;d=(a>b>c);printf(%dn,d);13以下程序中给指针 p 分配三个 double 型动态内存单元,请填空。#include<stdlib.h>main()double*p;p=(double*)malloc(3*sizeof(double);p0=1.5;p1=2.5;p2=3.5;printf(“%f%f%fn”,p0,p1,p2);14有以下程序 void f(int y,int*x)12 y=y+*x;*x=*x+y;
21、main()int x=2,y=4;f(y,&x);printf(“%d%dn”,x,y);执行后输出的结果是 8 4 15以下程序的运行结果是 2002Shangxian#include<string.h>typedef struct student char name10;long sno;float score;STU;main()STU a=“zhangsan”,2001,95,b=“Shangxian”,2002,90,c=“Anhua”,2003,95,d,*p=&d;d=a;if(strcmp(a.name,b.name)>0)d=b;if(strcmp(c.n
22、ame,d.name)>0)d=c;printf(“%ld%sn”,d.sno,p->name);三、程序(段)填空题(每空 2 分,共 10 分)1 以下函数返回 a 所指数组中最小的值所在的下标值,请填空:fun(int*a,int n)int i,j=0,p;p=j;13 for(i=j;i<N;I+)if(a<AP)_ p=i _;return(p);2.下列程序调用 swap 函数交换 a 和 b 的值,并输出交换后的 a 和 b 的值。程序的输出结果是:After swap 5,3 void main()int a=3,b=5;swap(&a,&b );pr
23、intf(After swap%d,%d,a,b);swap(int*p,int*q)int t;t=*p;*p=*q ;*q=t ;14 (一)程序设计语言的发展 1、机器语言 2、汇编语言 3、面向过程的语言 4、面向对象的程序设计语言(二)C 程序设计语言的执行过程 1、编辑 2、编译 3、连接 4、执行(三)用库函数组装 C 程序 例 1:计算 2.1715 的正弦值。#include“math.h”main()float a;/*定义 a 为实型变量*/a=sin(2.1715);/*调用 sin 函数*/printf(“%fn”,a);/*调用 printf 函数,输出 a 的值*
24、/详解:1、在本例中用到的 sin 函数称为数学函数,它是为了用户使用方便,由一批厂家开发编写的函数,并不是 C 语言的一部分。在使用数学函数时,往往要用到函数执行时所需的一些信息(例如宏定义),这些信 息包含 在“math.h”中。因 此在程 序开头 用#include“math.h”将有关的标头文件包括到程序中。2、一个 C 语言源程序文件由一个或多个函数组成,C 语言的基本组成单位是函数。一个完整的 C 语言程序有且只有一个称为主函数的 main 函数,程序总是从 main 函数开始执行,调用其它函数后再回到 main 函数,在 main 函数中结束整个程序的运行。3、main 是函数名
25、称,没有参数可以不写,但圆括号不能省略,main()后面有一对花括号,花括号内的部分称为函数体,main 函数可以在程序的任意位置。4、C 规定每个语句以分号(;)结束,分号是语句不可缺少的组成部分,每行中可以写多条语句。15 5、/*与*/之间为注释信息,对程序运行结果不发生影响,也不被编译,注释说明可以放在语句的任意位置。6、float a;此语句是把 a 定义为一个实型变量。7、C 语言本身没有输入、输出语句,本例使用 prinft 函数输出数据。prinft 函数的括号内包括两部分内容:双引号内的部分、双引号外的部分。双引号内的部分是“格式字符串”,用于指定输出双引号外的变量的打印格式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 试卷
限制150内