【精品】《C语言程序设计》经典必考习题1_第1页
【精品】《C语言程序设计》经典必考习题1_第2页
【精品】《C语言程序设计》经典必考习题1_第3页
【精品】《C语言程序设计》经典必考习题1_第4页
【精品】《C语言程序设计》经典必考习题1_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、12345678单项选择题(每题2分,共40分)以下对一维整型数组 a的正确定义(说明)的是。A int a(10); B ) int n=10,an; C int n; D #define SIZE 10scanf( "%d',&n); int aSIZE;int an;若有定义(说明)int a10;,则对数组a的元素正确引用的是A a10 B a3.5执行下面程序段后,变量int k=3,s2;s0=k; k=s1*10;A不定值 B 33C a(5) D a10-10k的值是。C 30 D10以下程序的输出结果是 omain() int i,k,a10,p3;

2、k=5;for(i=0;i<10;i+) ai=i;for(i=0;i<3;i+) pi=ai*(i+1);for(i=0;i<3;i+) k+=pi*2;printf( "%dn",k);A 20 B 21C 22D 23以下对一维整型数组a初始化的语句中正确的是A int a10=(0,0,0,0,0); B int a10=();C int x=2,a10=10*x;D int a10=0;若有以下说明,则数值为4的表达式是。int a12=1,2,345,6,7,8,9,10,11,12;char c= 'a',d,g;A ag-c

3、 B a4 C a'd'-'c' D a 'd'-c下列程序运行后的输出结果是。#define MAX 10 void main() int i,sum,a尸1,2,3,4,5,6,7,8,9,10;sum=1;for(i=0;i<MAX;i+) sum-=ai; printf("sum=%dn',sum);A sum=55 B sum=-54 C sum=-55 D sum=54以下程序的输出结果是。main() int y=18,i=0,j,a8;do ai=y%2; i+; y=y/2; while(y>=1)

4、;for(j=i-1;j>0;j-) printf(" %d ,aj);A 1000 B 1001 C 1010 D 11009以下对二维数组 a的正确定义(说明)的是A int a3町 B float a(3,4); Cdouble a14; D float a(3)(4);10若有定义(说明)int a34;,则对数组a的元素的引用非法的是A a22*1 B a13 C a4-20 D a0411以下不能对二维数组a进行正确初始化的语句是A int a23=0;B int a口3=1,2,0;15C int a23=1,2,3,4,5,6; D int a口3=1,2,3,

5、4,5,6;12卜列数组定义语句中,正确的是A char a川='a','b', 'c','d', 'e','f'C char a口3='a', 'b','c', 'd','e', 'f'B char a23=D char a口口='a', 'b''a', 'b','c', 'd', 'e',

6、'f'13卜列程序运行后的输出结果是main() int a44,i,j,k;for(i=0;i<4;i+)for(j=0;j<4;j+) aij=i-j;for(i=1;i<4;i+)for(j=i+1;j<4;j+) k=aij; aij=a皿i; a皿i=k; for(i=0;i<4;i+) printf( "n ");for(j=0;j<4;j+) printf("%4d',aij);14 A 0 -1 1 2 3 C 0 -1 1-2 -30 -1 -21 0 -12 1-2 -30 12 -1

7、 0 13 -2 -1 0以下程序的输出结果是0-1-2-30-1-2-310-1-21012210-12-10 132103-2-20main() int i,a44=1,3,5,2,4,6,3,5,7;printf("%d%d%d%d'na03,a12,a21,a30);15A 0650 B1470有以下程序:main() int x32=0,i;for(i=0;i<3;i+) scanf(C 5430"%d,xi);输出值不定printf(若运行时输入:A 2 0 0"%3d%3d%3dhx00,x01,x10);2 4 6<回车>

8、,则输出结果是B 2 0 4 C 2 4 0 D 2 4 616下列描述不正确的是A字符型数组中可以存放字符串B可以对字符型数组进行整体输入和输出C可以对整型数组进行整体输入和输出D不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 17对于以下定义,叙述正确的是。char x= "abcdef"char x='a', 'b''c', 'd','e','f;A数组x和数组y等价BC数组x的长度大于数组y的长度 18以下选项中,不能正确赋值的是。数组x和数组y的长度相等D数组x的

9、长度小于数组y的长度A char s110;s1= "Ctest ”;B char s2口='C','t','e','s','t'C char s320= "Ctest"D char s430;strcpy(s4,"Ctest");19 若有定义和语句:char s=10;s= "abcd"printf( "%sn",s);,则输出结果是(以下口表示空格)A abcd B aC abcd D 编译不通过20当执行下面程序时,如

10、果输入ABC,则输出结果是。#include<stdio.h>#include<string.h>main() char ss10="12345”;gets(ss); strcat(ss, "6789"); printf( "%sn",ss);A ABC6789 B ABC67 C 12345ABC6 D ABC45678二填空题(每空3分,共24分)1若int类型变量占两个字节,定义 int x10=0,2,4;,则数组x在内存中所占的字节 数是。2若有定义char a= "141141abct",

11、则数组a在内存中所占的字节数是。3下列程序的输出结果是。main() int i,a10;for(i=9;i>=0;i-) ai=10-i;printf("%d%d%dha2,a5,a8);4下列程序运行的结果是。main() char ch7="65ab21" int i,s=0;for(i=0;chi>='0' && chi<= '9'i+=2) s=10*s+chi-'0'printf( "%dn",s);5有定义语句:char s100 , d100 ;

12、int j=0 , i=0 ;且s中已赋字符串,请填空以实现字符串复制。(注意:不得使用逗号表达式)while(si) dj=; j+ ; dj=0;6下面程序运行的结果是。main() char s= "abcdef"s3= '0 ' printf( "%sn",s);7以下程序的输出结果是。main() char ch35= "AAAA, "BBB', "CC;printf( n ",ch1);8以下程序的输出结果是。main() char ch="abc",x34;

13、 int i;for(i=0;i<3;i+) strcpy(xi,ch);for(i=0;i<3;i+) printf(" %S',&xii);printf( "n");三程序填空题(每空3分,共36分)1以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出平 均成绩,并输出低于平均分的学生成绩。请填空。#include "stdio.h "main() int n=0,i; float x1000,sum=0.0,ave,a;printf( "Enter mark:n "

14、); scanf("%f",&a);while(a>=0.0 && n<1000) sum+= 【1 ;xn=【2】 ;n+; scanf( "%f',&a);ave=【3】;print( "Output:n ");printf( "ave=%fn ",ave);for(i=0;i<n;i+) if(【4】)printf( "%fn ",xi);2以下程序的功能是求出矩阵x的上三角元素之积。其中矩阵 x的行列数和元素的值均由键盘输入。请填空。#de

15、fine M 10main() int xMM; int n,i,j; long s=1;printf( "Enter a integer(<=10):n ");scanf( "%d',&n);printf( "Enter %d data on each line for the array xn",n);for( 【1】 )for(j=0;j<n;j+) scanf( "%d ,&xij);for(i=0;i<n;i+)for( )【3】;printf( "%ld",s)

16、;3以下程序,数组a中存放一个递增数列。输入一个整数,并将它插入到数组a中,使之仍为一个递增数列。请填空。main() int a 【1】 尸1,10,20,30,40,50,60,70,80,90,x,i,p;scanf( "%d',&x);for(i=0,p=10;i<10;i+)if(x<ai) p=i; ;for(i=9;i>=p;i-) ai+1=ai;【3】; for(i=0;i<=10;i+) printf( "%5dn",ai); printf( "n");4以下程序的功能是:将 t数组的

17、内容连接到s数组内容的后面,使 s数组保存连接后的 新字符串。main() static char s30= "abcdefg ",t= "abcd" int i=0,j=0;while(si!='0')【1】;while(tj!='0') si+j=tj; j+; 【2】;printf( "%sn",s); 函数一单项选择题(每题2分,共40分) 1以下正确的函数定义是。A double fun(int x,int y) z=x+y; return z; C fun (x,y)B double fun

18、(int x,y) int z; return z; D double fun(int x,int y) int x,y; double z ; double z;z=x+y; return z; return z; 2以下正确的说法是。A实参和与其对应的形参各占用独立的存储单元B实参和与其对应的形参共占用一个存储单元C有当实参和与其对应的形参同名时才共占用相同的存储单元D形参是虚拟的,不占用存储单元3若调用一个函数,且此函数中没有return语句,则正确的说法是45678910111213A该函数没有返回值B该函数返回若干个系统默认值C能返回一个用户所希望的函数值D返回一个不确定的值以下正确

19、的描述是。A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套 若用数组名作为函数调用的实参,传递给形参的是。A数组的首地址B数组中第一个元素的值C数组中的全部元素的值D数组元素的个数以下不正确的说法是。A在不同函数中可以使用相同名字的变量B形式参数是局部变量C在函数内定义的变量只在本函数范围内有定义D在函数内的复合语句中定义的变量在本函数范围内有定义 已知一个函数的定义如下:double fun(int x, double y) 则该函数正确的函数原型声明为。A double fun(i

20、nt x,double y) B fun(int x,double y)C double fun(int,double); D fun(x,y);关于函数声明,以下不正确的说法是。A如果函数定义出现在函数调用之前,可以不必加函数原型声明B如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原 型声明C函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查D标准库不需要函数原型声明调用函数的实参与被调用函数的形参应有如下关系。A只要求实参与形参个数相等B只要求实参与形参顺序相同C只要求实参与形参数据类型相同D上述三点均需具备凡在函数中未指定存储类别的变量,其隐含的

21、存储类别是。A自动 B 静态 C 外部 D 寄存器 源源程序的一个文件中定义的全局变量的作用域是。A在本文件的全部范围B该程序的全部范围C 一个函数的范围D从定义该变量的位置开始至该文件的结束下列程序运行后的输出的数据是。int sum(int n) int p=1,s=0,i;for(i=1;i<=n;i+) s+=(p*=i);return s; main() printf( "sum(5)=%dn ",sum(5); A sum(5)=151 B sum(5)=152 C sum(5)=153 D sum(5)=155 下列程序运行后的输出结果是。int c=1

22、;main() static int a=5;int b=6;printf( "a=%d,b=%d,c=%dn",a,b,c);func();printf( "a=%d,b=%d,c=%dn",a,b,c);func();func() static int a=4;int b=10;a+=2;c+=10;b+=c;printf( "a=%d,b=%d,c=%dn",a,b,c);14A a=5,b=6,c=1 a=6,b=21,c=11 a=5,b=6,c=11 a=8,b=31,c=21 运行下面的程序后B a=5,b=6,c=11

23、 a=5,b=21,c=11 a=5,b=6,c=11 a=8,b=31,c=21,其输出结果是一C a=5,b=6,c=1 a=5,b=21,c=11 a=5,b=6,c=11a=8,b=31,c=21D a=5,b=6,c=1 a=6,b=21,c=11 a=5,b=6,c=11a=5,b=31,c=2115main() int a=6,b=2,c;c=f(a)/f(b);printf( "%dn",c);int f(int x)int y;y=x+*x+;return y;C 36D 18卜列程序输出结果是一#include<stdio.h>my() st

24、atic int x=3;x+; return(x); main()int i,x;for(i=0;i<=2;i+) x=my();printf( "%dn",x);16卜列程序的输出结果是#include<stdio.h>int abc(int u,int v) int w;while(v) w=u%v; u=v; v=w; return u;main() int a=24,b=16,c;c=abc(a,b);printf( "%dn",c);A 8B 6C 5D 417下列程序运行后的输出结果是。main() static char

25、 s= "abcdefgca " p(s); printf( "s=%sn ",s);p(char s) int i,j;for(i=j=0;si!='0 'i+) if(si!='a'+2) sj+=si;sj=、0 'A s=abcdefgca B s=abdefga C s=bcdefgc D程序有错18卜列程序运行后的输出结果是void main() int m=4,n=2,k;k=fun(m,n); printf(k=fun(m,n); printf(int fun(int x,int y) static

26、 int n=3,i=2;i+=n+1; n=i+x+y;return(n);"%dn",k);"%dn",k);A 12B 121223C 1225D 121619卜列程序运行后的输出结果是int x=1;main() int i=5;fun(i);printf( "%d,%dn",i,x);fun(m)int m; m+=x;x+=m; char x= 'A' printf( "%d'n",x); printf( "%d,%dn",m,x);A 65B AC AD 6

27、56,16,16,76,76,16,16,75,720下列程序运行后,若从键盘输入ABC!四个字符后,程序输出是。#include<stdio.h>main() void receiv();receiv();void receiv() char c;c=getchar();putchar(c);if(c!= '! ') receiv();putchar(c);A ABC! B ABC!ABC! C ABC!CBA D ABCABC二填空题(每空3分,共30分)1函数调用语句:fun(a,b),(c,d,e);,实参个数为。2凡在函数中未指定存储类别的局部变量,其默认

28、的存储类别为。3在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该 变量需要定义的存储类别为。4 C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是。5运行下面程序,其输出结果是。#include <stdio.h>int x,y;one() int a,b;a=25,b=10;x=a-b;y=a+b;main() int a,b;a=9,b=5;x=a+b;y=a-b;one();printf( "%d,%dn",x,y):6运行下面程序,其输出结果是。#include <stdio.h> main() v

29、oid printd() int n=123; printd(n);void printd(int n) int i; if(n<0) n=-n; putchar( '-'); putchar(n%10+ '0');if(i=n/10)!=0) printd(i);7运行下面程序,从键盘输入四个字符xyz#,其输出是#include <stdio.h> main() void recursion。;recursion。;void recursion。 char c;c=getchar();putchar(c);if(c!='#'

30、) recursion。;putchar(c);8以下程序的输出结果是#include<stdio.h>void fun(int x)"%d " ,x); if(x/2>0) fun(x/2); printf( main() fun(3); printf("n "); 9以下程序运行结果是。int a=1;int f(int c) static int a=2;c=c+1;return (a+)+c;main() int i,k=0;for(i=0;i<2;i+) int a=3; k+=f(a); k+=a;printf( &q

31、uot;%dn",k);10.以下程序的运行结果是。int k=0;void fun(int m) m+=k; k+=m; printf( "m=%dn k=%d ”,m,k+); main() int i=4;fun(i+); printf( "i=%d k=%dn ",i,k);三程序填空题(每空3分,共30分)1 一个整数称为完全平方数,是指它的值是另一个整数的平方。例如81是个完全平方数,因为它是9的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完 全平方数,且三位数字中又有两位数字相同:例如 144 (12*12)、676 (26*26)等,程 序找出并输出所有满足上述条件的三全数。程序如下:main() int n,k,a,b,c;for(k=1;k+)【1】if(n<100)【2】;if(n>999)【3】;a=n/100;b=【4】 ;c=n%10;if(flag(a,b,c) printf("n=%d=%d*%dn,n,k,k);flag 【5】 return(!(x-y)*(x-z)*(y-z); 2以下程序的功能是应用近似公式计算ex的值。其中,函数 f1计算每项分子的值,函数f2计算每项分母的值。共取nmax项之和作为e的近似值。n xn!max 1x(max 1)2!23x ,

温馨提示

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

评论

0/150

提交评论