C语言模拟题1_第1页
C语言模拟题1_第2页
C语言模拟题1_第3页
C语言模拟题1_第4页
C语言模拟题1_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

c语言程序设计模拟试题A专业 班级 学号 姓名 题号一二三四五六七八总分得分 1、单选题(15分)1、若有定义:int a=8, b=5, c; 执行语句c = a/b+0.4 ;后,c的值为( B )。 A) 1.4 B) 1 C) 2.0 D) 22、以下程序中,while 循环的次数是( B)。 #include void main(void) int i = 0;while (i10) 0。if (i1) continue;if (i=5) break;i+; A) 1 B) 死循环,不能确定次数 C) 6 D) 103、以下程序的输出结果是( A)。 #include void main(void) int a = 0, i;for (i=1; i5; i+)v switch (i) case 0: case 3: a += 2; case 1: case 2: a += 3; default: a += 5; printf(“%dn”, d); A) 31 B) 13 C) 10 D) 204、执行以下程序段后的输出结果是( ? )。 int x = 5; int m, n; n = (+x) + (+x); m = (x-) + (x-); printf(“%d %dn”, m, n); A) 14 10 B) 13 13 C) 14 14 D) 14 125、执行以下程序后的输出结果是( C)/短路计算 #include void main(void) int i = 0, j = 0, a = 6;if (+i0)|(+j0) a +;printf(“i=%d, j=%d, a=%dn”, i, j, a); A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=76、执行以下程序后的输出结果是( D ) #include void main(void) char a=”abc0abc”;printf(“%s”, a); A) abc0abc B) abc C) abc0 D) abc7、以下程序的输出结果是( C ) #include void main(void) int a = 1, b = 2, c = 3;printf(“%d”, cba);cb为真,出值为1,1a为假,出值为0 A) 2 B) 1 C) 0 D) 38、执行以下程序后,a的值为( D )。 int *p, a = 10, b=1; p = &a; a = *p + b; A) 12 B) 编译出错 C) 10 D) 119、以下正确的叙述是( C )。A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误10、以下各语句或语句组中,正确的操作是( C )。A) char s5=abcdeB) char *s; gets(s);C) char *s; s=abcde;D) char s5; scanf(%s, &s);11、设有以下说明语句,则下面的叙述中不正确的是( B )。struct ex int x ; float y; char z ; example;A) struct结构体类型的关键字 B) example是结构体类型名C) x,y,z都是结构体成员名 D) struct ex是结构体类型12、对以下程序段,while 循环执行的次数是( A )。int k=0while (k=1) k+;A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次13、若已定义:int a9,*p=a;并在以后的语句中未改变p的值,则不能表示a1 地址的表达式是( C )。A) p+1 B) a+1 C) a+(/表示先取a的值,再使a加1。因此a+表示a0的地址,且数组名是常值指针,不能修改其值。) D) +p14、函数调用:strcat(strcpy(str1,str2),str3)的功能是( C )。A) 将串str1复制到串str2中后再连接到串str3之后B) 将串str1连接到串str2之后再复制到串str3之后C) 将串str2复制到串str1中后再将串str3连接到串str1之后D) 将串str2连接到串str1之后再将串str1复制到串str3中15、在下列选项中,不正确的赋值语句是(D )。A) +t; B) n1=(n2=(n3=0); C) k=i=j; D) a=b+c=1;2、程序填空(26分)1、求1!+2!+3!+。+10! #include void main(void) float s = 0, t = 1;int n;for (n=1; n=10 ; n+) t=t*n ; s+=t ; printf(“1!+2!+3!+。+10!=%f”, s); 2、以下程序是用来统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中最大者。例如:1080其零的个数是2,各位数字中最大者是8。#include void main(void) unsigned long num, max, t; int count; count=max=0; scanf(%ld, &num); do t= num%10 ; if(t=0) +count; else if(maxt) max=t ; num/=10; while(num); printf(count=%d,max=%ldn, count, max); 3、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数。#include void main(void) int i, j; for(i=0; i10; i+) j = i*10+6;if ( j%3=0 ) continue;printf(%d,j);For(i=1;i=100;i+)If(i%3&i%10=6).4、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。void exchange(int *x, int *y) int t;t=*y; *y = *x ; *x = t ;3、阅读程序,4、写出程序的输出结果(24分)1、#include void main(void) char *s, *s1,ch100 = “here is”, *s2 = “key”;s = s1=ch;while (*s1!=0) s1+;while (*s1+=*s2+);s2 = s;while (*s2!=0) s2+printf(“%dn”, s2-s); 运行结果: 10 /新串的长度2、#include void main(void) static int a = 1, 3, 5, 7; int *p3 = a+2, a+1, a; /p0=&a2,p1=&a1 int *q = p;/ q=&p0 printf(“%dn”, *(p0+1) + *(q+2); /*(q+2)=*&p2=p2=a=&a0 , *a=a0 运行结果:83、include void main(void) int num,c; printf(请输入一个整数:); scanf(%d,&num); do c=num%10; printf(%d,c); while(num/=10)0); printf(n); 运行结果:123 3214、include fut(int *s, int p23) *s=p11;void main(void) int a23 = 1,3,5,7,9,11, *p;p = (int *) malloc(sizeof(int);fut(&p,a);printf(%dn,*P);5、编程(35分)(1)sum=2+5+8+11+14-,输入正整数n,求sum的前n项和。(2)求1100间的素数(素数1,且除了1和自身外,不能被任何其它整数整除。(3)使用指针数组对输入的3个整数序列(每个序列5个整数)进行排序,排序方法不限。(10) 有15个数存放在一个数组中,输入一个数,用折半查找法找出该数是数组中第几个元素。若该数不在数组中,则打印出“No found”。c语言程序设计模拟试题B专业 班级 学号 姓名 题号一二三四五六七八总分得分 6、单选题(15分)1、以下程序的输出结果是( C )。 #include void main(void) int a = 5, b = 4, c = 6, d; printf(“%dn”, d=ab?(ac?a: c): b); A) 5 B) 4 C) 6 D) 不确定2、以下程序的输出结果是( A )。 void main(void) int a = 4, b = 5, c = 0, d; d = !a & !b | !c; printf(“%dn”, d); A) 1 B) 0 C) 非0的数 D) -13、以下程序的输出结果是( 1+2+3+4+5=15 )。 #include int f(void) static int i = 0; int s =1;s += i;i+;return (s); void main(void) int i, a = 0;for (i=0; i5; i+) a += f();printf(“%dn”, a); A) 1 B) 0 C) 非0的数 D) -14、执行以下程序段后的输出结果是( A )。 int x = 2, y = 3, z; z = (x+, y+); printf(“%d”, z); A) 3 B) 2 C) 5 D) 45、执行以下程序后的输出结果是( A )。 #include void main(void) int i = 010, j =10, a = 0x10;printf(“%d, %d, %dn”, i, j, a); A) 8, 10, 16 B) 8, 10, 10 C) 10, 10, 10 D) 10, 10, 166、以下程序的输出结果是( D)。 #include void main(void) int a = 7, float x = 2.5; y = 4.7;printf(“%g”, x+a%3*(int)(x+y)%2/4); A) 0 B) 2.75 C) 2 D) 2.57、下列语句行中,哪些语句能正确进行字符串赋值操作( C )。B没有分号 A) char st45 未赋值 B) char s5=A, B, C, D, E 没有; C) char *s; s = “ABCDE”; D) char *s;scanf(“%s”, s); 没有定义“char s;”*s没有指向8、以下程序的输出结果是( D )。 #include void main(void) char a = 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, *p = a+5;(a5=4)printf(“%d”, *-p); A) 非法 B) a4的地址 C) 3 D) 59、以下程序的运行结果是( C )。*P=a00 (*p)1=a01 *P1=a10#include *(p3+1)=a31void main(void) int a43= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12; int *p4, j; for (j=0; j4; j+) pj=aj; printf(%2d,%2d,%2d,%2dn, *p1, (*p)1, p32, *(p3+1);A) 4, 4, 9, 8B) 程序出错C) 4, 2,12,11D) 1, 1, 7, 510、以下C语言中,对函数不正确的描述是( D )。A) 当用数组名作形参时,形参数组改变可使实参数组随之改变B) 允许函数递归调用C) 函数形参的作用范围只是局限于所定义的函数内D) 函数说明必须在主调函数之前11、以下所列的各函数首部中,正确的是( C )。A) void play(var :Integer,var b:Integer) B) void play(int a,b)C) void play(int a,int b) D) Sub play(a as integer,b as integer)12、以下程序执行后sum的值是( C ) sum没有初值 void main(void) int i , sum;for (i=1;i6;i+) sum+=i;printf(%dn,sum);A)15 B)14 C) 不确定 D)013、以下叙述中不正确的是( C )。A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。B) 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C) 在C中,外部变量的隐含类别是自动存储类别。D) 在C中,函数形参可以说明为register变量。41、在C语言中,合法的字符常量是( B )。A) 084 (084/不合法,八进制没有8) B) x43 C) ab (ab /不合法,字符只能是一个。) D) 0(”0” /不合法,字符串不需要写结束符)15、以下函数调用语句中含有的实参个数是( B )。func(exp1,exp2),(exp3,exp4,exp5);A) 1 B) 2 C) 4 D) 5二、程序填空(26分)1、定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能。#include void compare(char *s1, char *s2) while(*s1&*s2& *s1=*s2 ) s1+; s2+ ; return *s1-*s2 ;void main(void) printf(%dn, compare(abCd, abc);2、函数fun的功能是:使字符串str按逆序存放。void fun (char str) char m; int i, j;for (i=0, j=strlen(str); i j ; i+, j-) m = stri;stri = strj-1 ;strj-1 = m; printf(%sn,str);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。#include void main( void) float x1000,sum=0.0,ave,a;int n=0,i;printf(Enter mark:n);scanf(%f,&a);while (a=0.0& n1000) sum+ =a ; xn= a ;n+; scanf(%f,&a);ave= sum/n ;printf(Output:n);printf(ave=%fn,ave);for (i=0;in;i+)if ( xnave ) printf (%fn,xI);4、以下fun函数的功能是:累加数组元素中的值.n为数组中元素的个数, 累加的和值放入x所指的存储单元中。void fun(int b ,int n, int *x) int k, r=0;for (k=0; kn; k+) r = r+bk ; *x = r;7、阅读程序,8、写出程序的输出结果(24分)1、#include void main(void) int x = 1; int x = 2; int x = 3; printf(“x= %dn”, x); printf(“x= %dn”, x); printf(“x= %dn”, x);运行结果:x=3 x=2 x=12、#include void main(void) static char s = “china”, c; int i, j; for (i=0; i=1; j-) if (sjsj-1) c = sj; sj = sj-1; sj-1 = c; printf(“%sn”,s);运行结果:achin3、include void f(int c) int a=0; static int b=0; a+; b+; printf(%d: a=%d, b=%dn, c, a, b);void main(void) int i; for (i=1; i=3; i+) f( i );运行结果:1:a=1,b=1 2:a=1,b=2 3:a=1,b=34、#include struct stu int num;char name10;int age;void fun(struct stu *p) printf(%sn,(*p).name); void main(void) struct stu students3= 9801,Zhang,20, 9802,Wang,19, 9803,Zhao,18 ; fun(students+2);运行结果:zhao四、编程(35分)(1)输入一个double 类型的数,使该数保留小数点后2位,且对第3位进行四舍五入处理。(2)编写函数strcopy(s, t),将字符串 s 复制到字符串 t 中。(3)求21000中的所有完数(某数因子和等于其本身的数称为完数。例:28的因子是1,2,4,7,14,且1+2+4+7+14=28,故28是完数。)c语言程序设计模拟试题C专业 班级 学号 姓名 题号一二三四五六七八总分得分 9、单选题(15分)1、若变量a 是int 类型,并执行了语句a = A+1.6;后,则正确的叙述是( C )。 A) a的值是字符C B) a的值是浮点型 C) a的值是字符A的ASCII值加1 D) 不允许字符型和浮点型相加2、执行以下程序段后,变量y的值是( B )。 int x, y; x = 1; y = (+x*5); A) 5 B) 10 C) 15 D) 203、9、执行以下程序段后的输出结果是( B ) int x = 10; printf(“%d ”, +x); printf(“%d ”, x-) A) 11 10 B) 11 11 C) 10 11 D) 10 104、执行以下程序后的输出结果是( ? ) #include void main(void) int x = 10;printf(“%d %d %dn”,+x, -x, -x+); A) 11 10 -10 B) 10 10 -10 C) 10 11 -11 D) 11 11 -105、下面正确的自定义标识符是( A ) A) a2b3 B) int C) int abc D) 2a3b6、以下程序的输出结果是( C ) #include void main(void) int a = 12, n = 5;printf(“%d”, a%2= = (n%2);比较逻辑值 A) 01 B) 1 C) 0 D) 0x17、若有下列说明和语句:int a45, (*p)5; p = a; 则对a数组元素的正确引用是( D )。A) p+1 B) *(p+3) C) *(p+1)+3 D) *(*p+2)8、执行printf(%dn, strlen(anx41)语句,其输出结果是( D )。 A) 8 B) 7 C) 6 D) 49、若定义a2=1,2,3,4,5,6,7; 则a数组中行的大小是( C )。A) 2 B) 3 C) 4 D) 无确定值10、若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果是( ? )。fseek(fp, 0, SEEK_END)i=ftell(fp);printf(i=%ldn, i);A) -1B) fp所指文件的长度,以字节为单位C) 0D) 211、当调用函数时,实参是一个数组名,则向函数传送的是( B )。A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值12、若变量c为char类型,则能正确判断出c为小写字母的表达式是( D )。A) a=c= a)|(c= z)C) (a=c) D) (c= a)&(c= z)13、以下对C语言函数的有关描述中,正确的是( A )。A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用C) 函数必须有返回值,否则不能使用函数D) C程序中有调用关系的所有函数必须放在同一个源程序文件中14、若有以下定义和语句,则则输出结果是( D )int *pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%dn,*p,*pp);A)10,20 B)10,10 C)20,10 D)20,2015、设有语句char a=72; 则变量a包含的字符个数是( A )。A)1 B)2 C)3 D)说明不合法10、程序填空(26分)1、以下程序用来检查二维数组是否对称(即:对所有i,j都有aij=aji)。#include void main(void) int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8,6,7,4; int i, j, found=0; for(j=0; j4; j+) for(i=0; i4; i+) if ( aij!=aji ) found= 1 ; break; if(found) break; if(found) printf(不对称n); else printf(对称n);2、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。#include #include void main(void) char a=clanguage,t;int i, j, k;k = strlen(a);for (i=0; i=k-2; i+=2) for (j=i+2; jaj ) t=ai; ai=aj; aj=t; puts(a);printf(n);3、以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部。#include void main(void) FILE *fp;char ch,fname32; int count=0;printf(Input the filename :);scanf(%s,fname);if (fp=fopen( fname ,w+)=NULL) printf(Cant open file:%s n,fname); exit(0);printf(Enter data:n);while (ch=getchar()!=#) fputc(ch,fp); count+;fprintf( fp ,n%dn,count);fclose(fp);4、以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。#include int isprime(int);void main(void) int i,a10,*p=a,sum=0;printf(Enter 10 num:n);for (i=0;i10;i + + ) scanf(%d,&ai);for (i=0;i10;i + + )if (isprime(*(p+ i ) = 1) printf(%d,*(a+i); sum += *(a+i); printf(nThe sum=%dn,sum); int isprime(int x) int i; for (i=2;i=x/2;i + + )if (x%i = = 0) return (0); return 1 ; 三、阅读程序,写出程序的输出结果(24分)1、#include void increment(void);void main(void) increment(); increment(); increment();void increment(void) static int x = 0; x +; printf(x = %dn, x);运行结果:x=1 x=2 x=32、#include void main(void) int array10 = 1, 2, 4, 5, 6, 0, 0, 0, 0, 0, i; printf(n); for (i=0; i=2; i-) arrayi = arrayi-1; array2 = 3; for (i=0; i10; i+) printf(%3d , arrayi); printf(n); 运行结果:1 2 4 5 6 0 0 0 0 0 1 1 3 4 5 6 0 0 0 03、include void main(void) static char a=ABCDEFGH,b=abCDefGh;char *p1,*p2;int k;p1=a; p2=b;for(k=0;k=7;k+) if (*(p1+k)=*(p2+k) printf(%c,*(p1+k);printf(n); 运行结果:CDG4、#include int fun(int x,int y,int *cp,int *dp) *cp=x+y; *dp=x-y; void main(void) int a, b, c, d;a=30; b=50;fun(a,b,&c,&d); printf(%d,%dn, c, d);运行结果:80,-20四、编程(35分)(1)通过函数的递归调用计算阶乘。(2)编写函数strcompare(s1,s2),按照字典顺序比较两个字符串s1和s2,若两串相等返回0;若串s1s2,则返回+1;若串s1s2,则返回-1。(3)编程找出1000以内的满足勾股定理 的整数组(a,b,c)。C语言题库 *1 A 一个C程序的执行是从_。 A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 *2 C 以下叙述正确的是: A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 *3 D 以下叙述不正确的是。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 *4 C C语言规定:在一个源程序中,main函数的位置。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 *5 B 一个C语言程序是由 A)一个主程序和若干子程序组成B)函数组成 C)若干过程组成D)若干子程序组成 *6 A 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 A)charint1ongint=floatdouble B)char=int1ongint=floatdouble C)charint1ongint=float=double D)char=int=1ongint=floatdouble *7 C 若x,i,j和k都是int型变量,则执行下面表达式后x的值为 x=(i=4,j=16,k=32) A)4B)16C)32D)52 *8 B 假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是: A)7B)8C)6D)2 *9 A 下列四组选项中,均不是C语言关键字的选项是 A)defineB)getcC)includeD)while IFcharscanfgo typeprintfcasepow *10 B 下面四个选项中,均是C语言关键字的选项是 A)autoB)switchC)signedD)if enumtypedefunionstruct includecontinuescanftype *11 C 下面四个选项中,均是不合法的用户标识符的选项是。 A)AB)floatC)b-aD)一123 P_01a0gototemp do一AintINT *12 C C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A)必须为字母B)必须为下划线 C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符 *13 A 下面四个选项中,均是合法整型常量的选项是: A)160B)一0xcdfC)一01D)一0x48a 一0xffff01a986,0122e5 0110xe06680x *14 D 下面四个选项中,均是不合法的整型常量的选项是: A)一一0f1B)一0XcdfC)一018D)一0x48eg 一0xffff017999一068 001112,4565e203f *15 B 下面四个选项中,均是不合法的浮点数的选项是 A)160.B)123C)一.18D)一e3 0.122e4.2123e4.234 e3.e50.01e3 *16 b 下面四个选项中,均是合法浮点数的选项是 A)+le+1B)-.60C)123eD)一e3 5e一9.412e-41.2e-.4.8e4 03e2一8e5+2e一15.e一0 *17 A 下面四个选项中,均是合法转义字符的选项是 A)B)C)018D)0 017f

温馨提示

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

评论

0/150

提交评论