C语言程序设计考试题(全题).doc_第1页
C语言程序设计考试题(全题).doc_第2页
C语言程序设计考试题(全题).doc_第3页
C语言程序设计考试题(全题).doc_第4页
C语言程序设计考试题(全题).doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

更多信息登陆:北上(www.BenS) 关注福建专升本福建师范大学C语言程序设计考试题系别 _ 班级 _ 姓名_ 学号_ 得分_一、 选择题 (本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)程序设计 B)“程序设计”C)c D)2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)0163.执行int x2,y3;后表达式x(y3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c+, b+=c);则a的值是【4】 A) 3 B) 4 C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】 A) 结束本次循环,进行下次循环 B) 继续执行break语句之后的循环体中各语句 C) 跳出该循环体,提前结束循环 D) 终止程序运行6.以下程序运行结果是【6】 main() char s=”Address”; printf(%dn”, strlen(s); A) 9 B) 10 C) 11 D) 127.以下程序运行结果是【7】 main() int a=2, 4, 6, 8, 10, y=1, x; for(x=0; x3; x+) y+=ax+1; printf(“%dn”, y); A) 17 B) 18 C) 19 D) 208.已定义char x8; int i;为了给x数组赋值,以下正确的语句是【8】 A) x8=”Turbo C”; B) x=”Turbo C”; C) x=”Turbo C”; D) for(i=0; i B) % + += C) % += + D) + % +=12.以下不正确的描述是【12】 A) 在函数外部定义的变量是全局变量 B) 在函数内部定义的变量是局部变量 C) 函数的形参是局部变量 D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】 A) 直接按系统设定的标准方式搜索目录 B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索 C) 仅仅搜索源程序所在的目录 D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】 A) 指向一维整型数组的指针变量 B) 指针函数,该函数的返回值为指向整型变量的指针 C) 指向函数的指针变量,该函数的返回值为整型 D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR5;AR a;则以下叙述正确的是【15】 A) a是一个新类型名 B) AR是一个实型数组 C) AR是一个实型变量 D) a是一个实型数组16.C语言的简单数据类型包括【16】A)整型、实型、逻辑型 B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型 D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义 C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)0x123 B)3.14159 C)01001101b D)6.7e1019.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)ii; B)i=j=k; C)i=j+=i; D)i=j+1=k;20.数学关系式xyz可用C语言的表达式表示为【20】A)(x=y)&(y=z) B)(x=y)and(y=z) C)(x=y=z) D)(x=y)&(yz)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“6f”,&a); B)scanf(“5.2f”,a); C)scanf(“6.2f”,&a); D)scanf(“f”,a);22.下面程序段的运行结果是【22】unsigned a=0356,b;b=a|a0) s += 1; if(ab) t= s + t;else if(a=b) t=5; else t=2*s;printf(“%dn”,t);A)a0并且ab B)a0并且a0并且ab D)a0并且ab24.若int i;则以下循环语句的循环执行次数是【24】 for (i=2;i=0;) printf(“%d”,i-);A)无限次 B)0次 C)1次 D)2次25.下面程序的输出结果为【25】main()int i; for(i=100;i200;i+) if(i%5=0) continue; printf(“%dn”,i); break;A)100 B)101 C)无限循环 D)无输出结果26.下列程序段的运行结果是【26】int i=1,a=1,5,10,9,13,7;while(ai=10) ai+=2;for (i=0;i6;i+) printf(“%d”,ai);A)2 7 12 11 13 9 B)1 7 12 11 13 7 C)1 7 12 11 13 9 D)1 7 12 9 13 727.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是【27】A)char s=“abcde”; B)char s=a, b,c,d,e,0;C)char s=“abcde”; D)char s5= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) a=c= a)|(c= z) C) (a=c) D) (c= a)&(c= z)29.下列程序段的输出结果是【29】void fun(int *x, int *y) printf(%d %d, *x, *y); *x=3; *y=4; main() int x=1,y=2; fun(&y,&x); printf(%d %d,x, y); A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 30.以下程序的输出结果是【30】main() int i, k, a10, p3; k=5; for (i=0;i10;i+) ai =i; for (i=0;i3;i+) pi =ai *(i+1); for (i=0;i3;i+) k+=pi *2; printf(%dn,k); A) 20 B) 21 C) 22 D)23 31.当执行下面的程序时,如果输入ABC,则输出结果是【31】main() char ss10=1,2,3,4,5; gets(ss); strcat(ss, 6789); printf(%sn,ss); A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 32.以下不能对二维数组a进行正确的初始化的语句是【32】A) int a23=0; B) int a3=1,2,3,4,5;C) int a23=1,2,3,4,5,6; D) int a23=1,3,4,5;33.若int a31,2,3,4,5,6,7;则a数组第一维的大小是【33】 A) 2 B) 3 C) 4 D)无确定值 34.下面程序段的运行结果是【34】int a23=1,2,3,i,j;for(i=0;i2;i+) for(j=0;j3;j+) aij=ai*j%2j+ai(i+j)%3;printf(“%d,”,aij);A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a3=1,2,3,4,5,6,7,8,9,10,11,12;printf(“%dn”,a21);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A) 各成员所需内存量的总和B) 成员中占内存量最大者所需内存容量C) 结构中第一个成员所需内存容量D) 结构中最后一个成员所需内存容量37.若typedef char STRING255;STRING s;,则s是【37】A) 字符指针数组变量B) 字符数组变量C) 字符变量D) 字符指针变量38.若已定义:int *p,a;,则语句p&a;中的运算符“&”的含义是【38】A) 位与运算 B) 逻辑与运算C) 取指针内容 D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A) p=&ch;scanf(“%c”,p);B) p=(char *)malloc(1); *p=getchar();C) *p=getchar();p=&ch;D) p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s=“ABC”;int i;for(i=0;i3;i+) printf(“%s”,&si);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有函数都是外部函数 2.以下所列的C语言常量中,错误的是 A) 0xFF B) 1.2e0.5 C) 2L D) 72 3.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A) 不定值 B) 4 C) 3 D) 1 5.下面程序段的运行结果是【5】float y=0.0,a=2.0,4.0,6.0,8.0,10.0,*p;int i;p=&a1;for(i=0;i3;i+) y+=*(p+i);printf(“%fn”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.0000 6.下面程序段的运行结果是【6】char c=a,b,0,c,0;printf(“%sn”,c);A) ab c B) ab C) abc D) ab 7.下面程序段的运行结果是【7】char s10,*sp=“HELLO”;strcpy(s,sp);s0=h;s6=!;puts(s);A) hELLO B) HELLO C) hHELLO! D) h! 8.若有定义int a35,i,j;(且0i3,0j5),则aij的地址不正确表示是【8】A) &aij B) aijC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p4;,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D) 指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language=“FORTRAN”, “BASIC” ,“PASCAL” ,“JAVA”,“C”;则language2的值是【10】 A) 一个字符 B) 一个地址 C) 一个字符串 D) 不确定 11.C语言规定,函数返回值的类型由【11】所决定。A) return语句中的表达式类型B) 调用该函数时的主调函数类型C) 调用该函数时的形参类型D) 在定义该函数时所指定的函数类型12.下面程序的输出结果为【12】#include #define SQR(x) x*xmain()int a=10,k=3,m=2; a=SQR(k+m); printf(“%dn”,a); A) 25 B) 11 C) 5 D) 10 13. 下面程序的输出结果为【13】#include main()int a=10; int a=15; printf(“a.1=%d,”,a); printf(“a.2=%dn”,a);A) a.1=10,a.2=15 B) a.1=15,a.2=10C) a.1=15,a.2=15 D) a.1=10,a.2=1014.下面函数调用正确的是【14】A) fopen(file.dat,r); B) fprintf(“ld”,data,fp);C) fclose(“file.dat”); D) fread(&i,sizeof(int),1,fp);15.若变量已正确定义并赋值,下面符合C语言语法的表达式是【15】A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b 16.C语言中运算对象必须是整型的运算符是【16】A) B) / C) D) = 17.若已定义x和y为double类型,则表达式x1,yx+3/2的值是【17】A) 1 B) 2 C) 2.0 D) 2.518.有如下程序:main() int i,sum;for(i=1;i=3;sum+) sum+=i;printf(“%dn”,sum); 该程序的执行结果是【18】A) 6 B) 3 C) 死循环 D) 019.如下程序:int runc(int a,int b)return(a+b);main()int x=2,y=5,z=8,r;r=runc(runc(x,y),z);printf(“%dn”,r);该程序的执行结果是【19】A) 12 B) 13 C) 14 D) 1520.有如下程序段:int *p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为【20】A) 12 B) 11 C) 10 D) 编译出错21.以下函数返回a所指数组中最小的值所在的下标值 fun(int *a,int n) int i,j=0,p;p=j;for(i=j;in;i+) if(aib)&n; 则n的值是【30】A) 1 B) 2C) 3 D) 431.以下程序的运行结果是【31】#include main()int i=0; while(1) printf(“*”); i+; if(i3) break;printf(“n”);A) * B) *C) * D) *32.若有以下程序: #include main(int argc,char *argv) while(-argc) printf(“%s”,argvargc);printf(“n”); 该程序经编译和连接后生成可执行文件S.EXE。 现在DOS提示符下键入S AA BB CC回车,则输出结果是【32】A) AABBCC B) AABBCCSC) CCBBAA D) CCBBAAS33.若执行以下程序段 int x=3,y=6,z; z=xy2; 则z的二进制值是【33】A) 00011011 B) 00010100C) 00011000 D) 0000011034.以下【34】是非法函数调用语句。A) char c=T; B) char c; putchar(c); getchar(c);C) putchar(0x7) D) putchar(d+1);35.以下不正确的一维数组定义语句是【35】A) double a5=1.0,2.7;B) float a5=1.0,2.7,2.8,2,9,3.1,4.5;C) char a=1, 2, 101, t;D) char a=x10, xa, r;二、填空题(本大题共20个空,每个空2分,共40分)1.表示条件:10x100或xamax) amax=x; if(【3】) amin=x; scanf(“%f”,&x);printf(“namax=%fnamin=%fn”,amax,amin);3.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。#include void main() int f,f1=1,f2=1; int i; printf(“%6d,%6d”,f1,f2); for (i=3;i=20;i+) f=【4】 printf(“%6d”,f); if(【5】)printf(“n”); f1=f2; 【6】 4.下面程序的功能是将两个字符串连接起来,请填空。#include main() char s180,s240; int i=0,j=0; printf(“nInput string1:”);scanf(“%s”,s1);printf(“Input string2:”);scanf(“%s”,s2);while(s1i!=0)i+;while(s2j!=0) 【7】; 【8】=0; printf(“%sn”,s1); 5.计算1+1/2+1/4+1/50的值,并显示出来。 main() int i=2; float sum=1.0; while(i=【9】) sum+=1/【10】; i+=2; printf(“sum=%fn”,sum); 6.以下程序是用来统计正整数的各位数字中零的个数,并求各位数字中最大者。 main() unsigned long num,max,t; int count; count=max=0; scanf(“%ld”,&num); do t=【11】;if(t=0) +count;else if(maxt) 【12】;num/=10; while(num); printf(“count=%d,max=%ldn”,count,max); 7.以下程序功能是当输入学生序号(1或2或3)后,能输出该学生的全部成绩(共有三位学生,每位学生有4门成绩)。#include main() float score4=60,70,80,90,56,89,67,88,34,78,90,66, (*p)4; int n,i;p=【13】; scanf(“%d”,&n); printf(“序号为d的学生成绩是:”,n); for(i=0;i4;i+) printf(“%5.1f”,p【14】); 8. 以下程序经过编译连接后得到的可执行文件名为show.exe,程序的功能是将用户运行程序时键入的参数作为字符串连接起来,并在屏幕上显示,例如在dos提示符下输入:show ABC DEF GH回车,则在屏幕上将显示 ABCDEFGH。#include “string.h”main(int 【15】 ,char *argv) char s1000=”; int i; for (i=1;iargc;i+)strcat(s, 【16】);printf(“%sn”,s);9.若变量n中的值为24,则print函数共输出【17】行,最后一行有【18】个数。 void print(int n,int aa) int i; for(i=1;i=n;i+) printf(“%6d”,aai); if(!(i%5) printf(“n”); printf(“n”); 10.以下程序显示如下所示的矩阵,矩阵中每个元素形成的规律是:右上三角阵(含对角线)元素为1,其它元素值为:行下标列下标1。1 1 1 1 12 1 1 1 13 2 1 1 14 3 2 1 15 4 3 2 1 main() int i,j,a55;for(i=0;i=4;i+) for(j=0;j5;j+) if(【19】) aij=1; else 【20】=i-j+1;for(i=0;i5;i+) for(j=0;j5;j+) printf(“%3d”,aIj); printf(“n”);1.若已知a=1,b=2,则表达式!ab的值是【1】。2.若有以下定义double a10; 则a数组元素下标的上限为【1】 ,下限为【1】 。1.以下程序的输出结果是【1】 main() int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(%d,%dn, a, b ); 2.下列程序的输出结果是16.00,请填空。main() int a=9, b=2; float x= 【2】, y=1.1, z; z=a/2+b*x/y+1/2; printf(%5.2fn, z ); 3.下列程序段的输出结果是【3】。 main() char b=Hello,you; b5=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论