C语言程序设计试题与答案-4
- 格式:doc
- 大小:1.80 MB
- 文档页数:18
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次2、t为int类型,进入下面的循环之前,t的值为0while(t=1){ …… }则以下叙述中正确的是(B)A) 循环控制表达式的值为0B)循环控制表达式的值为1C) 循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D)m!=14、有以下程序,程序运行后的输出结果是(C).main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D ).main(){int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n-—;printf(“%d",n);}}该程序段的输出结果是(B)A)987 B) 876 C) 8765 D) 98767、以下程序的输出结果是(B)main(){int num= 0;while(num<=2){num++;printf(“%d\n”,num);}}A) 1 B) 1 C)1 D)l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车〉,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1。
0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2。
[试题分类]:C语言程序设计1.下列叙述中,错误的是A. 一个C语言程序必须有且只有一个主函数B. C语言程序的注释必须位于语句之后C. 一个C语言程序可以有多个函数D. C语言程序的基本结构是函数答案:B题型:单选题知识点:第2章 C语言概述难度:12.下列选项中,所有符号均为C语言关键字的选项是A. enum,ifB. include,elseC. scanf,structD. continue,repeat答案:A题型:单选题知识点:第2章 C语言概述难度:13.下列选项中,可以正确表示字符型常数的是A. 297B. "a"C. "\n"D. '\t'答案:D题型:单选题知识点:第3章数据类型与运算规则难度:14.下列C语言运算符中,要求操作数必须是int类型的是A. ++B. --C. %D. /答案:C题型:单选题知识点:第3章数据类型与运算规则难度:15.若有定义“int w=1,x=2,y=3,z=4;”,则条件表达式“w>x w : y<z y : z”的结果是A. 4B. 3C. 2D. 1答案:B题型:单选题知识点:第3章数据类型与运算规则难度:26.若有定义“int x;”,则执行完逗号表达式“(x=4*5,x*5),x+25”后,变量x的值是A. 20B. 100C. 45D. 125答案:A题型:单选题知识点:第3章数据类型与运算规则难度:27.若有定义“int i=-1,j=1;”,则执行下列语句后的输出结果是if((++i<0) && !(j--<0))printf("%d %d\n",i,j);else printf("%d %d\n",j,i);A. -1 1B. 0 0C. 0 1D. 1 0答案:D题型:单选题知识点:第5章选择结构的程序设计难度:28.下列叙述中,错误的是A. 循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环B. 循环语句中使用break语句是为了使流程跳出循环体,提前结束循环C. switch语句中使用break语句或continue语句的作用是相同的D. break语句不能用于循环语句和switch语句以外的其他语句答案:C题型:单选题知识点:第5章选择结构的程序设计难度:29.若有定义“int x=10,i;”,则下列语句执行后的结果是for (i=0; x>8; ) printf ("%d ",--x);A. 10 9B. 9 8C. 死循环D. 语句错误答案:B题型:单选题知识点:第6章循环结构的程序设计难度:210.若有定义“int n=0;”,则执行语句“while(n<=2) printf("%d", ++n);”后的输出结果是A. 01B. 12C. 012D. 123答案:D题型:单选题知识点:第6章循环结构的程序设计难度:211.{若有定义“int x=1,y=10;”,则执行下列语句后变量x的值是do \{y-=x; x++;\} while(y--<0);}A. 8B. 5C. 2D. -4答案:B题型:单选题知识点:第6章循环结构的程序设计难度:212.下列对字符数组str的定义、初始化或赋值语句中,正确的是A. char str[ ]={"Hello Ice!"};B. char str[10]; str={"Hello Ice!"};C. char str[10]; strcpy(str, "Hello Ice!"};D. char str[10]={"Hello Ice!"};答案:A题型:单选题知识点:第7章数组难度:113.{若有定义“int aa[3][3]=\{1,2,3,4,5,6,7,8,9\},i;”,则执行下列语句后的输出结果是 for(i=0;i<3;i++)printf("%d,",a[2-i][i]);}A. 9,5,1,B. 9,4,1C. 7,5,3,D. 7,6,1,答案:C题型:单选题知识点:第7章数组难度:214.C语言中,确定函数返回值类型的是A. 调用该函数时由系统默认B. 调用该函数时的主调函数C. return语句中的表达式D. 定义该函数时指定答案:D题型:单选题知识点:第8章函数难度:115.函数调用语句“fun(x1,x2+x3,(x4,x5));”中包含的实参个数是A. 3B. 4C. 5D. 有语法错误答案:A题型:单选题知识点:第8章函数难度:116.若有定义“int a[5],*p=a;”,则下列选项中,对数组a中元素引用正确的是A. *&a[5]B. *(a+2)C. *(p+5)D. a+2答案:B题型:单选题知识点:第9章指针难度:217.{执行下列语句序列后的输出结果是int arr[ ]=\{1,2,3,4,5\}, *ptr=arr;*(ptr+2)+=2; printf("%d,%d",*ptr,*(ptr+2));}A. 3,5B. 1,3C. 2,4D. 1,5答案:D题型:单选题知识点:第9章指针难度:218.{若有定义“enum color \{red, yellow=2, blue, white, black\} c1;”,则执行语句“printf("%d", c1=white);”后的输出结果是}A. 4B. 3C. 2D. 1答案:A题型:单选题知识点:第10章结构、联合与枚举类型难度:219.当定义一个结构体变量时,系统为它分配的内存空间是A. 结构体中占内存容量最大成员所需内存容量B. 结构体中任意一个成员所需内存容量C. 结构体中各成员所需内存容量之和D. 结构体中第一个成员所需内存容量答案:C题型:单选题知识点:第10章结构、联合与枚举类型难度:220.已知函数调用“fread(buffer, size,count, fp);”,其中fp代表的是A. 一个整数,代表要读入的数据项总数B. 一个文件指针,指向要读的文件C. 一个指针,指向要读入数据的存放地址D. 一个存储区,存放要读的数据项答案:B题型:单选题知识点:第11章文件难度:121.字符串"\"EOF\n=-\61\""的长度是。
《C语言程序设计》试题四一.单项选择题1.运算符___________的优先级最高。
A.[ ]B.+= C.?: D.++2.main( ){ int n;( n=6*4,n+6),n*2;printf(―n=%d\n‖,n); }此程序的输出结果是______________.A.30 B. 24 C.60 D. 483.若有如下定义,则__________是对数组元素的正确的引用。
.int a[10] , *p ;p=a ;A. *&a[10]B.a[11] C. *(p+11) D. *p *p *p4.设整型变量n的值为2,执行语句―n+=n-=n*n;‖后,n的值是__________A. 0B. 4C. - 4D. 25.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char<long<int<float<do ubleB.Double<float<long<int< charC.Char<int<long<float<do ubleD.Float<int<long<char<do uble 6.下面的变量说明中_____________是正确的。
A.char:a, b, c;B.char a; b; c; C.chara, b, c; D.char a, b, c7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A9 B 8C 15 D. 18.若x=5,y=3 则y*=x+5; y的值为_______________.A. 10B. 20C. 15D. 309.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0||b<0) B.(a>=0 &&b>=0)&&(a<0 && b<0)C.(a+b>0) &&(a+b<=0)D.a*b>010.C语言中,合法的字符型常数是_________。
题目:假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
选项A:1选项B:2选项C:4选项D:8答案:4题目:假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
选项A:a[i]选项B:*a++选项C:*a选项D:*(a+1)答案:*a++题目:用calloc函数创建具有10个整型元素的一维数组的正确语句是()。
选项A:int *p=calloc(10,2);选项B:int *p=calloc(10);选项C:int *p=calloc(10,4);选项D:int *p=malloc(10)答案:int *p=calloc(10,4);题目:假定变量m定义为“int m=7;”,则下面正确的语句为()。
选项A:int p=m;选项B:int *p=m;选项C:int p=*m;选项D:int *p=m;答案:int *p=m;题目:假定k是一个double类型的变量,则定义变量p的正确语句为()。
选项A:double p=k;选项B:int *p=k;选项C:double p=*k;选项D:char *p="Thank you!";答案:char *p="Thank you!";题目:在下面的函数声明语句中,存在着语法错误的是()。
选项A:AA(int a, int b)选项B:AA(int, int)选项C:AA(int a; int b)选项D:AA(int a, int)答案:AA(int a; int b)题目:在下面的保留字中,不能作为函数的返回值类型的是()。
选项A:void选项B:int选项C:enum选项D:long答案:enum题目:若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
选项A:x=pa[3];选项B:x=*(a+3);选项C:x=a[3];选项D:x=*pa+3;答案:x=*pa+3;题目:假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。
《程序设计基础》考试试卷四班级姓名学号一、选择题(每题1分,共20分)题号一二三四五总得分评卷人审核人得分1.以下叙述中正确的是( )A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号"{"和"}"只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分2.判断下面标识符中哪个是C语言中合法的用户定义标识符()A. 2a1bB. a%bdC. _123D. char3.设有以下定义int a=0; double b=1.25; char c=’A’; #define M 2则下面语句中错误的是( )A. a--;B. b--;C. c--;D. M--;4.有两条语句:static char x[]=”abcde”;static char y[]={‘a’,’b’,’c’,’d’,’e’};则下列说法中正确的是( )A. 数组x和数组y长度相同B.数组x长度大于数组y长度C. 数组x长度小于数组y长度D. 以上三种说法均错误;5.设整型变量a=13,则经运算a+= a/=a%=5后,a的值为()A. 17.333B. 17C. 0D. 26. 已知:int n,i=1,j=2;执行语句n=i<j?i++:++j;后,i和j的值是( ).A. 1,2B. 1,3C. 2,2D. 2,37.有函数定义如下:当自变量x<0时y=-1;当x=0时y=0;当x>0时y=1;以下程序片段能实现该函数功能的是( ):A. if(x>=0)B. y=-1;C. if(x>=0)D. y=0;if(x>0) y=1; if(x!=0) if(x>0) y=1; if(x>=0) else y=-1; if(x>0) y=1 ; else y=0; if(x>0) y=1;else y= 0; else y=0; else y= -1; else y=-1;8.当a=2,b=1,c=3,d=4,m和n值为1时,(m=a>b)||(n=c>d)的值是( )A. TRUEB. FALSEC. 1D.09.在C语言程序中,以下说法正确的是( )A. main函数内部可嵌套定义子函数B. main函数必须出现在所有函数之前C. main函数必须出现在所有函数之后D. main函数是程序执行的入口10.关于局部变量和全局变量说法正确的是():A. 在main函数中定义的变量都为全局变量B. 当全局变量与局部变量同名时,全局变量起作用C. 当全局变量与局部变量同名时,局部变量起作用D. 以上说法都不正确11.下列关于switch和break语句的讨论中,只有()是正确的。
习题四选择结构程序设计1. 设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是______。
A、if(x++);B、if(x>y && y!=0);C、if(x>0) x--D、if(y<0) {;}else y++; else x++;解析:本题考查的是if语句。
if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。
选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。
故本题答案选C。
2. 有以下程序main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf ("%d",i);}printf("\n"); }执行后的输出结果是______。
A、5B、24C、32D、40解析:本题考查的是if语句的应用。
在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。
故本题答案选C。
3. 在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对解析:本题考查的是if语句的使用规则。
在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。
故本题答案为C。
4. 有以下程序main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是______。
C语言程序设计模拟试题四(含答案)1、微型计算机的性能主要取决于A) 内存B) 中央处理器C) 硬盘D) 显示卡2、有一个数值152,它与十六进制数6A相等,那么该数值是A) 二进制数B) 八进制数C) 十进制数D) 四进制数3、使用超大规模集成电路制造的计算机应该归属于A) 第一代B) 第二代C) 第三代D) 第四代4、已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是A) 34H B) 54HC) 24H D) 64H5、一片存储容量是1.44MB的软磁盘,可以存储大约140万个A) ASCII字符B) 中文字符C) 磁盘文件D) 子目录6、在MS-DOS环境中同时按下[Ctrl]和[Break]两个键,其作用是A) 终止当前操作B) 暂停当前操作C) 关机D) 热启动7、将二进制数10000001转换为十进制数应该是A) 127 B) 129C) 126 D) 1288、磁盘处于写保护状态,那么磁盘中的数据A) 不能读出,不能删改,也不能写入新数据B) 可以读出,不能删改,也不能写入新数据C) 可以读出,可以删改,但不能写入新数据D) 可以读出,不能删改,但可以写入新数据9、微型机启动后,DOS提示符是C:\>,现提示符变为C:\USER>,则说明刚执行过命令A) PROMPT B) PROMPT USERC)PROMPT SP$G D) CD USER10、MS-DOS文件系统目录的组织形式属于A) 关系型结构B) 网络型结构C) 树型结构D) 直线型结构11、应用软件系统TH的总容量大约1MB,其主要程序文件存放在C:\TH目录中,而数据文件存放在C:\TH\DATA目录中,如果将它们完整地复制到A盘, 应该使用的命令是A) XCOPY C:\\TH A:\\ B) XCOPY C:\\TH A:\\ /SC) XCOPY C:\\TH A:\\ /M D) XCOPY C:\\TH A:\\ /P12、执行COPY A.TXT+B.TXT 这个DOS命令后,得到的磁盘文件是A) A.TXT B) B.TXTC) AB.TXT D) A+B.TXT13、WindowsS中,将一个应用程序窗口最小化之后,得到的磁盘文件是A) 仍在后台运行B) 暂时停止运行C) 完全停止运行D) 出错14、CD-ROM属于A) 感觉媒体B) 表示媒体C) 表现媒体D) 存储媒体15、在因特网(Internet)中电子公告板的缩写是A) FTP B) WWWC) BBS D) E-mail16、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为A) 4 B) 16C) 32 D) 5217、设有如下的变量定义:int i=8, k, a, b;unsigned long w=5;double x=1, 42, y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3) B) x%(-3);C) a=a*3=2 D) y=float(i)18、假定有以下变量定义:int k=7,x=12;则能使值为3的表达式是A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D)(x%=k)-(k%=5)19、以下叙述中正确的是A) 输入项可以是一个实型常量,如:scanf("%f",3.5);B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C) 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&f);D) 当输入数据时,必须指明变量地址,例如:scanf("%f",&f);20、设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是A) 把x和y按从大到小排列B) 把x和y按从小到大排列C) 无确定结果D) 交换x和y中的值21、以下程序的输出结果是main(){int a=12,b=12;printf("%d,%d\n",- -a,+ +b);}A) 10 10 B) 12 12C) 11 10 D) 11 1322、以下程序运行后,输出结果是main(){char *s="abcde";s+=2;printf("%ld\n",s);}A) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错23、以下程序输出结果是main(){ int m=5;if(m++>5)printf("%d\n",m);esleprintf("%d\n",m- -);}A) 7 B) 6C) 5 D) 424、当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;A) 1 B) 2C) 3 D) 625、在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为#include<stdio,h>main(){ char ch;while((ch=getchar())!='\n'){ if(ch>='A' && ch<='Z') ch=ch+32;else if(ch>='a' && ch<='z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEFC) abc D) DEF26、下面能正确进行字符串赋值操作的语句是A) char s[5]={"ABCDE"};B) char s[5]={'A','B','C','D','E'};C) char *s;s="ABCDEF";D) char *s; scanf("%s",s);27、执行以下程序段时X=-1;do {x=x*x; }while(! x);A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误28、执行以下程序后,输出的结果是main (){int y=10;do { y - -;}while(- - y);printf("%d\n",y - -);}A) -1 B) 1C) 8 D) 029、在下列选项中,没有构成死循环的程序段是\A) int i=100while(1){ i=i%100+1;if(i>100)break;\B) for( ; ;);\C) int k=1000;do{++k;}while(k>=10000);\D) int s=36;while(s);--s;30、执行语句:for(i=l:i++<4:);后,变量i的值是A) 3 B) 4C) 5 D) 不定31、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为#include<stdio.h>#include<string.h>func<char str[]){ int num=0;while(*(str+num)!='\0') num++;return(num);}main(){ char str[10],*p=str;gets(p); printf("%d\n",func(p));}A) 8 B) 7C) 6 D) 532、运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为#include<stdio,h>mair(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);}A) 2,0 B) 5,0C) 5,5 D) 2,533、若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;FILEL CHINA BEIJING SHANGHAI程序的输出结果是main(int argc,char *argv[]){ while(arge-->0){ ++argv;printf("%s ",*argv);}}A) CHINA BEIJING SHANGHAI B) FILEL CHINA BEIJINGC) C B S D) F C B34、下面程序运行的结果是main(){char ch[7]={65ab21"};int i,s=0for(i=0;ch[i]>='0' && ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}A) 2ba56 B) 6521C) 6 D) 6235、运行下面的程序,如果从键盘上输入:ab<回车>c <回车>def<回车>#include<stdio,h>#define N 6main(){ char c[N];int i=0;for( ;i<N;c[i]=getchar(),i++); for( i=0;i<N;i++) putchar(c[i]); printf("\n");}A) abcdefB) abcdC) abcdD) abcdef36、以下程序运行后,输出结果是#include<stdio,h>ss(char *s){char *p=s;while(*p) p++;return(p-s);}main(){char *a="abded";int i;i=ss(a);printf("%d\n",i);}A) 8 B) 7C) 6 D) 537、以下程序运行后,输出结果是func(int a, int b){ static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){ int k=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}A) 8,15 B) 8,16C) 8,17 D) 8,838、以下程序运行后,输出结果是#include<stdio,h>#define PT 5.5#define S(x) PT* x * xmain(){ int a=1,b=2;printf("%4.1f\n",S(a+b));}A) 49.5 B) 9.5C) 22.0 D) 45.039、以下程序运行后,输出结果是main(){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");)A) ABCDEFG B) CDGC} abcdefgh D} abCDefGh40、以下程序运行后,a的值是main(){int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;printf("%d\n",a);}A) 4 B) 1C) 0 D) 运行时出错,a无定值41、以下程序运行后,输出结果是int d=1;fun(int p){ int d=5;d+=p++;printf("%d,d);}main(){ int a=3;fun(a);d+=a++;printf("%d\n,d);}A) 84 B) 99C) 95 D) 4442、以下程序运行后,输出结果是main(){ char ch[2][5]={'693","825"},*p[2]; int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]='0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0';printf("%d\n",s);}A) 6385 B) 22C) 33 D) 69382543、以下程序运行后,输出结果是fut(int **s, int p[2][3]){ **s=p[1][1];}main(){ int a[2][3]={1,3,5,7,9,11}, *p;p=(int *) malloc(sizeof(int));fut(&p,a);printf("%d\n",*P);}A) 1 B) 7C) 9 D) 1144、设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2:则执行表达式:(m=a>b)&&(n=c>d)后,n的值为A) 1 B) 2C) 3 D) 045、在执行以下程序时,为了使输出结果为:t=4,则给a和b输入的值应满足的条件是main(){int s,t,a,b;scanf("%d,%d",&a,&b);s=1; t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b) t=5;else t=2*s;printf("t=%d\n",t);}A) a>b B) a<b<0C) 0<a<b D) 0>a>b46、以下程序的输出结果是main(){int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;printf("x=%d\n",x);}A) x=4 B) x=8C} x=6 D} x=1247、以下程序运行后,输出结果是#inchude <stdio,h>#inchude <string,h>fun(char *w, int n){ char t, *s1,*s2;s1=w: s2=w+n-1;while(s1<s2){ t=*s1++;*s1=*s2--;*s2=t;}}main(){ char *p;p="1234567";fun(p,strlen(p));puts(p);}A) 1234567 B) 7654321C) 1711717 D) 717717148、以下程序运行后,如果从键盘上输入: book <回车>book <空格><回车>则输出的结果是#include<string,h>main(){char a1[80],a2[80],*s1=a1, *s2=a2;gets(s1); gets(s2);if(! strcmp(s1,s2)) printf("*");esle printf("#");printf("%d/n",strlen(strcat(s1,s2)));}A) *8 B) #9C) #6 D) *949、以下程序运行后,输出结果是main(){int y=18,i=0,j,a[8];do{ a[i]=y%2; i++y=y/2;} while(y>=1)for(j=i-1;j>=0;j--) printf("%d",a[j]; printf("\n");}A) 10000 B) 10010 C) 00110 D) 10100答案:BBDDA ABBDC BAADC CADDD DCBBB CADCC DCACC DCBBC AACBC BCBB。
C语言程序设计试题与答案-4《C语言程序设计》试题(闭卷)一、单项选择题:(每题 2 分,共 30 分)1. C 语言规定:在一个源程序中,main函数的位置_____________。
A. 必须在最开始B.必须在系统调用的库函数的后面C. 可以任意D.必须在最后2. 下列说法中错误的是_____________。
A. 主函数可以分为两个部分:函数头和函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行3. 用 C 语言编写的源文件经过编的值是_____________。
A. 1,1B. 0,1C.1,0 D. 0,08. sizeof (char)的结果值是_____________。
A. 4B. 2C. 1D.出错9. 设 a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是_____________。
A. 10<a<15B. a= =11|| a= =12 || a= =13 ||a= =14C. a>10 && a<15D. !(a<=10) && !(a>=15)10. 要为字符型变量 a赋初值,下列语句中哪一个是正确的_____________。
A. char a="3";B.char a=’3’;C. char a=%;D.char a=*;11. 设有定义:char s[12] ="STRING" ; 则printf( "%d\n",strlen(s)); 的输出是_____________。
A. 6B. 7C. 11D. 1212. 合法的数组定义是( )。
A. int a[3][ ]={0,1,2,3,4,5};B. int a[ ][ ] ={0,1,2,3,4};C. inta[2][3]={0,1,2,3,4,5,6};D. int a[2][3]={0,1,2,3,4,5,};13. 函数在定义时,省略函数类型说明符,则该函数值的类型为。
A. voidB. intC. floatD. double14. 若有定义:int x,*pb;以下正确的赋值表达式是___________。
A. pb =&xB. pb =xC. *pb =&xD. *pb=*x15. 有以下说明和定义语句(int在内存中占4B)Union Student{ char name[20];int age;float scor[3];}st;则sizeof(st)的值为_____________。
A.4 B. 12C. 20D. 361. C 语言中,源程序的基本单位是子函数。
( )2. C 是一个结构化的程序设计语言。
( )3. 运算符“%”要求两个操作数都是整型。
( )4. 变量名是由字母、数字、下划线构成的,长度不限。
( )5. 条件运算符是一个三目运算符。
( )6. 一维数组的下标在任何情况下,都不可以省略。
( )7. 循环结构中,执行continue 语句表示结束整个循环。
( )8. 数组的下标必须是整型常量或常量表达式。
( )9. putchar ()函数的作用是输出一个字符串。
( )10. 函数类型省略,系统会默认为void 。
( )二、判断题:(每题 1 分,共 10 分)1. 求m 和n 的最小公倍数#include<stdio.h>void main(){int m,n,i;printf("请输入两个整数m 和n :\n"); scanf("%d,%d",&m,&n);for(______________________;i++)if(_________________________) {printf("%d 和%d 的最小公倍数为:%d\n",m,n,i);_________________________}}三、程序填空:(每空3分,共 18 分)2. 求 1+1/2+1/3+……+1/100#include<stdio.h>void main(){int i;float s;_____________________________for(_______________________________) _____________________________ printf("1+1/2+1/3+……+1/100的值为:%.2f\n",s);}1.#include<stdio.h>#include<math.h>四、程序分析题:(每题6 分,共 12 分)void f1( int x, int y, intz ){ float y1,y2;y1=(-y+sqrt( z )) /(2.0*x);y2=(-y-sqrt( z )) /(2.0*x);printf("y1=%.2fy2=%.2f\n",y1,y2);}void f2(int x, int y){ printf("y1=y2=%.2f\n", -y/(2.0*x));}void f3( ){ printf("no\n");}void main(){ int a,b,c,d;printf("pleaseinput :a,b,c\n");scanf("%d,%d,%d",&a,&b,&c);d=b*b-4*a*c;if(d>0)f1( a,b,d);elseif(d==0)f2(a,b);elsef3();}程序功能:程序输入: 1,-6, 8程序执行结果:2.#include <stdio.h>#define M 3#define N 4void main (){ int a[M][N],b[N][M],i,j;printf("请输入矩阵a:\n");for(i=0;i<M;i++)for(j=0;j<N;j++){ scanf("%d",&a[i][j]);b[j][i]=a[i][j];}printf("矩阵b:\n");for(i=0;i<N;i++){ for(j=0;j<M;j++)printf("%5d",b[i][j]);printf("\n");}}程序功能:输入数据: 1 5 7 93 6 8 24 7 1 8执行结果:注意:算法要求写在试卷上。
1. 设计一个简单的超市收银系统。
(输入商品购买的数量和单价,显示总付款、实付款与找零)2. 求1000以内的完数,并统计个数。
五、算法设计与程序实现(每题15分,共 30 分)参考答案一、单项选择题:(每题2 分,共 30分)1. C2. D3. A4. C5. B6. A7. D8. C9. A 10.B11.A 12. D 13.B14.A 15.C二、判断题:(每题 1 分,共10 分)1.×2. √3. √4. ×5. √6. ×7. ×8. √9. × 10. ×三、程序填空题:(每空3 分,共18分)1. i=m;i<=m*n i%m= =0 && i%n= =0 break;2. s=1; i=2;i<=100;i++ s=s+1.0/i;四、程序分析题:(每题6 分,共12分)1.程序功能:一元二次方程求解。
程序执行结果:y1=4,y2=22.程序功能:矩阵转置。
程序执行结果:1 3 45 6 77 8 19 2 8五、算法设计与程序实现:(每题15分,共30分)1.算法:S1:输入商品的单价price和购买数量m;S2:若price或m为0,则执行s6;S3:求价格之和。
sum=sum+price*m;S4:求商品数量之和。
count=count+m;S5:执行s1;S6:输出购买商品的数量count和总额t_price;S7:输入实付款money;S8:输出找零change=money-t_price算法:#include <stdio.h>void main(){ int m,count=0;floatprice,t_price=0,money,change;printf("请输入购买商品的单价和数量:\n单价数量\n");do{scanf("%f %d",&price,&m);if(price==0||m==0)break;t_price=t_price+m*price;count=count+m;}while(1);printf("\n\n\n********************\n ");printf("购买商品:%d 个应付款:%.2f\n",count,t_price);printf("实付款:");scanf("%f",&money);change=money-t_price;printf("找零:%.2f\n",change);}2.算法:S1:x初始化,x=1;S2:求x的因子;S3:求x的因子之和sum;S4:若sum与x相等,则x为完数,并将x输出;S5:因子个数累加,count++;S6:x自增,x++;S7:若x<=1000,则执行s2;S8:输出完数的总个数count;程序:#include<stdio.h>void main(){int x,i,sum,count=0;for(x=1;x<=1000;x++){ sum=0;for(i=1;i<x;i++)if(x%i==0) sum=sum+i;if(sum==x){count++;printf("%d ",x);}}printf("\n\n1000之内的完数共有%d个\n",count);}。