《c语言模拟试卷A.pdf》由会员分享,可在线阅读,更多相关《c语言模拟试卷A.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 C语言程序设计模拟试卷A(闭卷考试)一、选择题(每题2 分,共 20 分)1、以下不正确的C语言标识符是。A.ABC B.abc C.a_bc D.2、设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为:。A.float B.char C.int D.double3、根据下述定义,可以输出字符A的语句是。struct person char name11;struct char name11;int age;other10;struct person man10=Jone,Paul,20,Paul,Mary,18,Mary,Adam
2、,23,Adam,Jone,23;A.printf(%c,man2.other0.name0);B.printf(%c,other0.name0);C.printf(%c,man2.(*other0);D.printf(%c,man3.name);4、以下说法中正确的是:。A.C 语言程序总是从第一个定义的函数开始执行B.在 C语言程序中,要调用的函数必须放在main()函数中定义C.C 语言程序总是从main()函数开始执行D.C 语言程序中的main()函数必须放在程序的开始部分5、在定义int a10;之后,对 a 的引用正确的是。A.a10 B.a C.a(6)D.a10-106、以下
3、不能正确赋值的是。A.char s110;s1=test;B.char s2=t ,e,s,t C.char s320=test;D.char s44=t,e,s,t 2 7、设 i 和 x 都是 int类型,则for 循环语句。for(i=0,x=0;i=9&x!=876;i+)scanf(%d,&x);A.最多执行10 次 B.最多执行9 次C.是无限循环 D.循环体一次也不执行8、C语言中表示“在使用x 之前,先使x 的值加 1”的正确方式是。A.+x B.x+C.+x D.+x+9、设有说明int(*ptr)M;其中 ptr是。A.M 个指向整型变量的指针B.指向 M个整型变量的函数指
4、针C.一个指向具有M个整型元素的一维数组的指针D.具有 M个指针元素的一维指针数组,每个元素都只能指向整型量10、在下面关于指针的说法中,错误的一条是。A.变量的指针就是变量的地址B.可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量C.一个指针变量只能指向同一类型的变量D.指针变量中只能存放地址(指针)二、读程序写结果(每题3 分,共 21 分)1、以下程序运行后输出的结果是:#include void main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);2、若输入B,以下程序的输出结果是:void ma
5、in()char grade;scanf(%c,&grade);switch(grade)case A:printf(=85);case B:3 case C:printf(=60);case D:printf(60);default:printf(error);3、以下程序的输出结果是:void ast(int x,int y,int*cp,int*dp)*cp=x+y;*dp=x-y;main()int a,b,c,d;a=6;b=3;ast(a,b,&c,&d);printf(%d,%dn,c,d);4、以下程序的输出结果是:main()int a23=1,3,5,7,9,11;int
6、m,*ptr;ptr=&a00;m=(*ptr)*(*(ptr+2)*(*(ptr+4);printf(%dn,m);5、以下程序的输出结果是:main()int i,j;for(i=0;i5;i+)for(j=0;j5;j+)if(i=j|i+j=4)printf(*);else printf(+);printf(n);6、以下程序的输出结果是:main()int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%dn,p);4 int func(int a,int b)static int m=0;int i=1;i+=m+1;m
7、=i+a+b;return m;7、以下程序的输出结果是:main()char s=china,*p;for(p=s+1;ps+4;p+)printf(%sn,p);三、程序填空(每空2 分,共 20 分)1、将一个数组中的元素按逆序重新存放。例如原来的顺序为:8,6,5,4,1,要求改为:1,4,5,6,8。#define N 7 main()int aN=12,9,16,5,7,2,1,k,s;printf(n初始数组:n);for(k=0;kN;k+)printf(%4d,ak);for(k=0;k (1);k+)s=ak;ak=(2);(2)=s;printf(n交换后的数组:n);f
8、or(k=0;(3);k+)printf(%4d,ak);2、用递归方法求阶勒让德多项式的值,递归公式为Pnxnnxpxnpxnnnnn101211112()()()()()()/()#include5 main()float pn();float x,lyd;int n;scanf(%d%f,&n,&x);lyd=(1)printf(pn=%f,lyd);float pn(float x,int n)float temp;if(n=0)temp=(2)else if(n=1)temp=(3)else temp=(4)return(temp);3、在数组中同时查找最大元素下标和最小元素下标,分
9、别存放在main 函数的变量max 和 min中。#include void find(int*a,int*max,int*min)int i;*max=*min=0;for(i=1;ia*max)(1);else if(aia*min)(2);return;m ain()int a=5,8,7,6,2,7,3;int max,min;find(3);printf(%d,%dn,max,min);四、填空题(每空1 分,共 10 分)1、已知整型变量a=6,b=7,c=1,则表达式 (a*3-b+c)/5 的值是。2、当 a=3,b=4,c=3时,表达式 a=c 的值为,a!=c 的值为。6
10、3、int(*p)();定义的 p 是一个。4、数学公式yxbay)(21,写成 C语言表达式是。5、若 w=5,x=2,y=3,z=4,则条件表达式wxw:yzy:z 的结果为。6、C语言可以处理的文件类型是和。7、如下图所示,在链表中p1 和 p2 两个结点间插入p所指向的节点的关键语句是:和。其中结构体数据类型和指针变量的定义如下:struct stu int a;float b;struct stu*next;*head,*p1,*p2,*p;head P1 p2 p 五、编程题(第1 题 9 分,第 2、3 题各 10 分,共 29 分)1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如 153 是一个水仙花数,因为 153 153333。2、任意输入一个56 矩阵,求出每一行的和放到一个一维数组中,输出此矩阵及其每一行的和。3、任意输入20 个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现;排序用函数实现。