C语言程序设计习题集
C语言程序设计习题集
A. 从左起输出该字符串,右补空格
B. 按原字符长从左向右全部输出
C. 右对齐输出该字符,左补空格
D. 输出错误信息
25. 判断字符型变量 ch 为小写字母的表达式是()。
A.‘a’<=ch<=’z’
B. (ch>=a)&&(ch<=z)
C. (ch>=’a’)||(ch<=’z’)
D. (ch>=’a’)&&(ch<=’z’)
C. char a[10];a=”C program”;
D. char a[10]={“C program”};
29. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址
B. 数组第 1 个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
30. 若有如下定义,则对 a 数组元素地址的正确引用是()。
int a[5],p=a;
A. P+5
B. *a+1
C. &a+1
D.&a[0]
二、判断题
1. 在每个 C 程序中都必须并且只能有一个 main()函数。
()
2. 在 C 语言中,整型数据与实型数据在任何情况下都可以通用。
()
3. 在 C 语言程序中,happy 是正确的标识符。
()
4. 在 if 语句中,if 子句与 else 子句都可以单独使用,构成了 if 语句的两种默认形式。 ()
14. 下以程序运行结果是()。
main()
{ int a=2,i;
for(i=0;i<3;i++)
printf(“%4d”,f(a));}
《C语言程序设计》练习题及答案
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
C语言程序设计习题集(可以很好的帮助语言的学习)
[1.3] 结构化程序由 种基本结构组成 。
2011-8-22
顺序
、
选择(分支) 选择(分支)
和
循环
三
4
第二章 C程序设计的初步知识
一、选择题
[2.1] 以下选项中正确的整型常量是 A) 12. B) -20 C) 1,000 [2.2] 以下选项中正确的实型常量是 A) 0 B) 3. 1415 C) 0.329*102 [2.3] 以下选项中不正确的实型常量是 A) 2.607E-1 B) 0.8103e 2 C) -77.77 。 D) 4 5 6 D).871 ) D) 456e-2
[2.10] 以下叙述中正确的是 A)在 程序中无论整数还是实数 程序中无论整数还是实数, A)在C程序中无论整数还是实数,只要在允许的范围内 都能准确无误的表示。 都能准确无误的表示。 B)C程序由主函数组成 程序由主函数组成。 B) 程序由主函数组成。 C)C程序由函数组成 程序由函数组成。 C) 程序由函数组成。 D)C程序由函数和过程组成 程序由函数和过程组成。 D) 程序由函数和过程组成。
2011-8-22 3
第一章 程序设计基本概念
[1.1] 在TURBO C环境中用 环境中用RUN命令运行一个 程序 命令运行一个C程序 环境中用 命令运行一个 时,所运行的程序的后缀是 .EXE 。 [1.2] C语言源程序文件的后缀是 ______, 经过编译 语言源程序文件的后缀是 .C , .OBJ ,经过连接后, 后, 生成文件的后缀是 ______,经过连接后, 生成文 件的后缀是______。 件的后缀是 .EXE 。
2011-8-22 7
[2.11] TURBO C中int 类型变量所占字节数是 中 A) 1 B) 2 C) 3 [2.12] 不合法的八进制数是 A) 0 B) 028 [2.13] 不合法的十六进制数是 A) oxff B) 0Xabc C) 077
C语言程序设计习题集(有答案)
高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。
2. C语言既适合编写,也适合编写应用软件。
标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。
(完整版)C语言程序设计练习题(含程序及参考答案)
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
程序设计语言C_习题集(含答案)
《程序设计语言C》课程习题集一、单选题1.在C语言中,合法的长整型常数是A) OL B) 4962710 C) 324562& D) 216D2.以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD3.以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D4.以下程序的输出结果是main(){ int a=3;printf("%d\n",a+(a-=a*a) );}A) -6 B)12 C) 0 D) -125.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为A) 0 B) 1 C)2 D) 36.t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对7.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定8.以下程序的输出结果是main(){ int i, a[10];for(i=9;i>=0;i- -) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 3699.以下选项中,不能正确赋值的是A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest"; D) char *s4="Ctest\n";10.以下程序的输出结果是union myun{ struct{ int x, y, z; } u;int k;} a;main(){ a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A)4 B) 5 C) 6 D) 011.以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点12. C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-while D) if、for、continue13.下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头14.有以下程序段int m=0,n=0; char c=’a’;scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015.有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是A) 011122 B) 012 C) 012020 D) 12016.有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,117.有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,518.有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two19.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,k=2;for(i=0;i<3;i++){ printf("%d ",m[k][i]); }}执行后输出结果是A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 920.设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A) STD tt[2]={{1,’A’,62},{2,’B’,75}};B) STD tt[2]={1,"A",62,2,"",75};C) struct tt[2]={{1,’A’},{2,’B’}};D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};21.以下选项中属于C语言的数据类型是A)复数型B)布尔型C)集合型D)整型22.一个C程序的执行是从A)main()函数开始,直到main()函数结束B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束23.设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是A)3 B)0C)-12 D)924.若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是A)cd\0e B)'c''d' C)cd D)cd e25.已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;下列表达式不是4的是A)*(*p+3) B)*p+3 C)*(*(p+0)+3) D)a[0][3]26.以下有宏替换不正确的叙述A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符串替换D)宏名必须用大写字母表示27.执行char str[10]=”Ch\nina”; strlen(str)的值是A)5 B)6 C)7 D)928.下面程序的输出结果是#define POWER(x) (x*x)main(){int i=4; printf("%d",POWER(i-2)); }A)-9 B)-7 C)5 D)-629.在定义int a[3][4];后,第10个元素是A)a[2][4] B)a[3][2] C)a[3][3] D)a[3][1]30.下面程序的输出结果是typedef struct{long x[2];short y[4];char z[8];}MYTYPE;MYTYPE a;main(){ printf("%d\n",sizeof(a));}A)2 B)8 C)14 D)2431.以下能正确进行字符串赋值的是A)char s[5]={‘a’,’e’,’I’,’o’,’u’} B)char s[5];s=”good”C)char s[5]=”abcd” D)char s[5];s[]=”good”32.若有float x;则sizeof(x)和sizeof(float)两种描述A)都正确B)都不正确C)前者正确,后者不正确D)后者正确,前者不正确33.若有代数式3ae/(bc),则不正确的C语言表达式是A)3*a*e/b*c B)3*a*e/b/c C)a/b/c*e*3 D)a*e/c/b*334.下面程序的运行结果是Main( ){struct cmplx{ int x;int y;}cnum[2]={1,3,2,7};Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);}A)0 B)1 C)3 D)635.若有以下说明和语句,且0<=i<10,则()是对数组元素的错误引用int a[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;A)*(a+i) B)a[p-a] C)p+i D)*(&a[i])36.设有以下宏定义:#define M 2#define X(m) ((M+2)*m)则执行语句:z=2*(M+X(3+2));后,z的值为A)44 B)45 C)32 D)3337.在如下程序段中的while循环int k=0;While(k=1) k++;A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次38.下列程序运行的结果为#include<stdio.h>Main(){ int k=0;Char c=’A’;Do{switch(c++){ case ‘A’:k++;break;Case ‘B’:k- -;break;Case ‘C’:k+=2;break;Case ‘D’:k=k%2;break;Case ‘E’:k=k*10;break;Default:k=k/3;}K++;}while(c<’G’);Printf(“k=%d”,k);}A)k=4 B)k=6 C)k=7 D)k=839.下列程序运行的结果为#include<stdio.h>fun(int x,int y,int *cp,int *dp){*cp=x+y;*dp=x-y;}main(){ int a,b,c,d ;a=30 ;b=50;fun(a,b,&c,&d);printf(“%d,%d\n”,c,d);}A)50,30 B)30,50 C)80,-20 D)80,2040.阅读程序回答问题:main( ){ int i,j,k,m=0;for(i=1;i<4;i++)for(j=1;j<4;j++)for(k=1;k<4;k++)m++;printf(“M=%d”,m);}以上程序输出M=( ).A)3 B)6 C)9 D)2741.能将高级语言编写的源程序转换为目标程序的是A)链接程序B)解释程序C)编译程序D)编辑程序42.以下4组用户定义标识符中,全部合法的一组是A)main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _00143.设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是()A)a++ B)b++ C)c++ D)d++;44.以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0 C)if(a>0) D)if(b==0) m=1;n=2;45.有以下程序main( ){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A)another B)another C)another D)numbernumber number number numberanother number46.有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,147.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5 B)6 C)8 D)948.有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是A)28 B)22 C)16 D)449.设有以下语句typedef struct S{ int g; char h;}T;则下面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量50.有以下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是A)10 B)9 C)7 D)851.组成C程序的基本单位是A)函数B)标识符C)表达式D)语句52.设int类型的数据长度为2字节,则该类型数据的取值范围A)0至65536 B)0至65535 C)-32767至32768 D)-32768至3276753.在C语言中,逻辑值“真”是用( )表示的。
C语言程序设计习题集(学校题库)
2010-2011 第一C语言程序设计一、填空题1. 每一个C程序都必须有一个____函数。
2. C程序是由____构成的。
3. TC集成开发环境中,用热键______查看运行结果。
4. 浮点数3*108写成C语言指数格式为_____(最简格式)。
5. TC控制字符'\r'表示____。
6. 字符串"abc\r\x41\x42\\"中有效字符个数是__。
7. 求表达式的值:123/10%10=___________ 。
8. 已知:a=3,b=4,c=5,求a=(b++)+c运算后a的值为:___________9. 用于从键盘读入一个字符但不回显的是__。
10. 执行语句if((x=4+3)==3)y=5;else y=10;后,结果:y=_______11. 执行语句if(!5)y=5;else y=10;后,结果:y=_____12. C语言是以( )为单位进行编译的。
第 1 页/共62 页13. 定义函数时在数据类型前面加static和extern分别表示定义____函数和____函数。
14. 内部函数的作用域只限于一个____。
15. 外部函数的作用域只限于一个____。
16. 有序线性表能进行二分查找的前提是该线性表必须是____ 存储的。
17. 对软件设计的最小单位(模块或程序单元)进行的测试通常称为____测试。
18. 实体完整性约束要求关系数据库中元组的____属性值不能为空。
19. 在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称____是关系A的外码。
20. 字符(char)型数据在微机内存中的存储形式是____21. 输入一个五位整数,将它反向输出。
例如输入12345,输出应为____。
22. C语言程序的基本单位是____ 。
23. C语言程序的三种基本结构是____。
24. C语言可执行程序的开始执行点是____ 。
C程序设计第1-4章习题集
习题(第1-4章)一.选择题1.以下叙述正确的是()。
A.C语言的源程序不必通过编译就可以直接运行。
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C.C语言源程序经编译形成的二进制代码可以直接运行。
D.C语言中的函数不可以单独进行编译。
2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
A.有0个或多个输入。
B.有0个或多个输出。
C.有穷性。
D.可行性。
3.以下叙述中正确的是()。
A.C语言比其它语言高级。
B.C语言可以不用编译就能被计算机识别执行。
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D.C语言出现的,具有其它语言的一切优点。
4.C语言中用于结构化程序设计的3种基本结构是()。
A.顺序结构、选择结构、循环结构B.if、switch、breakC.for、while、do-whileD.if、for、continue5.为解决某一特定问题而设计的指令序列称为()。
A.文档B. 语言C. 程序D. 系统6.用高级程序设计语言编写的程序称为()。
A.目标程序B. 可执行程序C. 源程序D. 伪代码7.能将高级语言编写的源程序转换成目标程序的是()。
A.编辑程序B. 编译程序C. 驱动程序D. 链接程序8.下列叙述中,正确一条是()。
A.计算机语言中,只有机器语言属于低级语言。
B.高级语言源程序可以被计算机直接执行。
C.C、C语言属于高级语言。
D.机器语言是所用机器无关的。
9.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束10.以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误11.以下叙述不正确的是()。
C语言程序设计习题集及解答
目录第一章C语言基础知识 (1)第二章C语言程序设计的初步知识 (2)第二章答案 (25)第三章顺序结构程序设计 (3)第四章选择结构程序设计 (4)第五章循环结构程序设计 (6)第六章数组 (7)第六章答案 (26)第七章函数 (9)第七章答案 (27)第八章指针 (12)第八章答案 (28)第九章结构体与共用体 (14)第九章答案 (28)第十章文件 (16)第十章答案 (29)模拟试题 (17)模拟试题答案 (25)第一章C语言基础知识考点:1.C语言的特点。
2.C语言的基本结构、字符集、标识符、关键字。
3.算法的概念和描述方法。
一、选择题1. A 是C程序的基本构成单位。
A)函数B) 函数和过程C) 超文本过程D) 子程序2.下列说法正确的是 C 。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对3.下列说法正确的是C。
A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号4.下列标识符正确的是C。
A)x+y123 B)4_student C)a456 D)U.S5.以下说法正确的是C。
A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分6.B不是C语言提供的合法关键字。
A)char B)scanf C)case D)default7.C语言提供的合法关键字是C。
A)ELSE B)INT C)case D)printf8. 一个C语言程序是由B。
A)一个主程序和若干个子程序组成;B)函数组成, 并且每一个C程序必须且只能由一个主函数;C)若干过程组成;D)若干子程序组成.9. 以下叙述中错误的是(C )A.C语言是一种结构化程序设计语言。
C语言程序设计_习题大全(含答案)_C语言-1
C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x<<02>>B>>23.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) Case). Default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值 D) T9若有以下定义char s='\092';则该语句( B )A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
C语言程序设计习题集沈国荣参考答案
《C语言程序设计》习题解答沈国荣隋雪莉闵芳目录第1章 C语言程序设计概述 (2)第2章数据类型及其运算 (3)第3章语句与输入输出 (4)第4章选择结构程序设计 (6)第5章循环结构程序设计 (9)第6章数组 (12)第7章函数 (15)第8章编译预处理 (18)第9章指针 (19)第10章结构体与共用体 (22)第11章位运算 (26)第12章文件操作 (27)第1章 C语言程序设计概述1、函数、main()函数2、/*、*/3、、C、、OBJ、、EXE4、顺序结构、选择结构、循环结构三、编程题1、【参考代码】#include<stdio、h>int main( ){printf( "(学校名称)\n" ) ;printf( "(姓名)\n" ) ;return 0 ;}2、【参考代码】#include<stdio、h>int main( ){printf( "(学校名称)\n(姓名)\n" ) ;return 0 ;}第2章数据类型及其运算注:第5题B选项为:'\'' '\017' '\t'二、填空题1、字母、数字、下划线2、1、4、4、83、-164、3、55、06、97、68、-609、y%2==110、1、0、1三、程序阅读题1、b2、03、04、10,25、9,10,9,106、3,1,0,07、3,20,30,1第3章语句与输入输出1、123、472、D3、回车4、10,2三、程序阅读题1、2612、203、201,104、y=4630y=46305、*3、140000,3、142*6、c:dec=120,oct=170,hex=78,ASCII=x7、x=1 y=2 *sum*=310 squared is : 1008、2 48 20、2 20、29、x+y+z=4810、55, ,A四、编程题1、【参考代码】#include<stdio、h>int main( ){char ch;printf("请输入一个字符:\n");scanf("%c",&ch);printf("%c的ASCII码为:%d\n", ch,ch);return 0 ;}2、【参考代码】#include<stdio、h>#define PI 3、1416int main( ){double r, h;double cl,cs,cv;printf("请输入圆的半径:");scanf("%lf", &r);printf("请输入圆柱高:");scanf("%lf", &h);cl=2*PI*r;cs=PI*r*r;cv=PI*r*r*h;printf("圆的周长为:%、4lf\n", cl);printf("圆的面积为:%、4lf\n", cs);printf("圆柱的体积为:%、4lf\n", cv);return 0 ;}3、【参考代码】#include<stdio、h>int main( ){int splitInt,one,ten,hundred;printf("输入要处理的整数:");scanf("%d",&splitInt);hundred = splitInt/100;ten = splitInt%100/10;one = splitInt%10;printf("个位:%d,十位:%d,百位:%d\n",one,ten,hundred);return 0 ;}第4章选择结构程序设计1、102、2,2,23、64、97,b5、c=-16、88887、20,08、2,19、1,12,22,1-2,210、a=1,b=3三、程序完善题1、a>b、c>x四、编程题1、【参考代码】#include<stdio、h>int main( ){int a, b, c,d,min;printf("输入4个整数:");scanf("%d%d%d%d",&a,&b,&c,&d);if(a < b) min = a;else min = b;if(c < min) min=c;if(d<min) min=d;printf("%d\n",min);return 0 ;}2、【参考代码】#include<stdio、h>int main( ){int num,a,b,c,d;printf("请输入一个四位整数:");scanf("%d",&num);a=num/1000;b=num%1000/100;c=num%100/10;d=num%10;printf("各位数字之与为:%d\n",a+b+c+d);return 0 ;}3、【参考代码】#include<stdio、h>int main( ){int x;printf("请输入x:");scanf("%d",&x);printf("y的值为:");if(x<0)printf("%d\n",x);else if(x<50)printf("%d\n",3*x-2);else if(x<100)printf("%d\n",4*x+1);elseprintf("%d\n",5*x);return 0 ;}4、【参考代码】#include<stdio、h>int main( ){int dj;float zl,je,yfk;printf("请输入等级(1~4): ");scanf("%d",&dj);if (dj>4||dj<1){printf("无此等级的苹果!\n");return 0;}printf("请输入重量(公斤): ");scanf("%f",&zl);printf("\n");switch (dj){case 1 : je=5、5*zl; break;case 2 : je=4、3*zl; break;case 3 : je=3、0*zl; break;case 4 : je=2、5*zl; break;}printf("您选择苹果级别: %d 级\n",dj);printf("您购买苹果重量: %、2f公斤\n",zl);printf("您应付金额为: %、2f元\n",je);printf("\n");printf("顾客所付金额: ");scanf("%f",&yfk);if (yfk<je){printf("Data Error!\n");return 0;}printf("应找您: %、2f元\n",yfk-je);return 0 ;}第5章循环结构程序设计1、1,2,02 、m=4,n=23、A2C4E64、1325、46、k=0,m=57、x=88、1、69、998988三、程序完善题1、( ch > 'Z' && ch <= 'Z' + 4 ) ||(ch > 'z' ) ch - 262、k k/10 continue3、i + t * 10 s = s + t4、fabs( t ) >= 1e-6 f = -f5、i<10 j%3 !=0四、编程题1、【参考代码】#include<stdio、h>int main( ){int n , i , j , k ;printf( "Output:\n" ) ;for(n = 100 ; n < 1000 ; n++ ){i = n % 10 ; /* 个位*/j = ( n / 10 ) % 10 ; /* 十位*/k = n / 100 ; /* 百位*/if ( n == i * i * i + j * j * j + k * k * k )printf( "%d\n" , n ) ;}return 0 ;}2、【参考代码】#include<stdio、h>int main ( ){int i , m , n , t , p , k ;printf( "Please input: " ) ;scanf ( "%d,%d" , &m , &n ) ;if( m < n ){t = n ;n = m ;m = t ;}p = m * n ;while ( n != 0 ) /* 余数不为0,继续相除,直到余数为0 */ {i = m % n ;m = n ;n = i ;}k = p / m ;printf( "%d,%d\n" , m , k );return 0 ;}3、【参考代码】#include<stdio、h>int main( ){int i , n , t , sum ;t = 1 ;sum = 0 ;printf( "Please input: n = " ) ;scanf( "%d" , &n ) ;for( i = 1 ; i <= n ; i++ ){t = t * i ;sum = sum + t ;}printf( "1!+2!+…+%d!= %d\n" , n , sum ) ;return 0 ;}4、【参考代码】#include<stdio、h>int main( ){int i , m ;double sum = 0 , k = 1 ;printf( "Please input : m=" ) ;scanf( "%d" , &m ) ;for( i = 1 ; i <= m ; i++ ){sum = sum + k / i ;k = -k ;}printf( "sum=%4.2f\n" , sum ) ;return 0 ;}第6章数组1 82 43 0,24 125 t*M6 mo7 fwo三、程序完善题1 k = i j = ia[k] = max a[j] = min2 sum += score[i] score[i]<avg3 s[i] = s[i] + a[i][j] printf( "\n" ) ;4 j = strlen( str ) – 1 str[j] = k5 ( c = getchar( ) ) != '#' num[c-'A'] += 1四、编程题1、【参考代码】#include<stdio、h>#define N 5int main( ){int a[N] , i , j , r , temp ;printf( "Please input %d numbers\n" , N ) ;for( i = 0 ; i < N ; i++ )scanf( "%d" , &a[i] ) ;for( i = 0 ; i < N - 1 ; i++ ){r = i ;for( j = i + 1 ; j < N ; j++ )if( a[j] < a[r] )r = j ;if( r != i ){temp = a[r] ;a[r] = a[i] ;a[i] = temp ;}}printf( "The array after sort:\n" ) ;for( i = 0 ; i < N ; i++ )printf( "%5d" , a[i] ) ;printf( "\n" ) ;return 0 ;}2、【参考代码】#include<stdio、h>int main( ){int a[10] = { 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 } ;int x , j , k = 0 ;printf( "Please input :x= " ) ;scanf( "%d" , &x) ;if( x > a[7] )a[8] = x ;else{for( j = 0 ; j < 8 ; j++ )if( x < a[j] )break ;for(k = 8 ; k > j ; k-- )a[k] = a[k - 1] ;a[j] = x ;}for( j = 0 ; j < 9 ; j++ )printf( "%5d" , a[j] ) ;printf( "\n" ) ;return 0 ;}3、【参考代码】#include<stdio、h>int main( ){int a[5][5] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24} ;int i , j ,sum = 0 ;for ( i = 0 ; i < 5 ; i++ ){for ( j = 0 ; j < 5 ; j++)printf( "%4d" , a[i][j] ) ;printf( "\n" ) ;}for( i =0 ;i < 5 ; i++ )sum += a[i][i] ;printf( " sum=%4d\n" , sum ) ;return 0 ;}4、【参考代码】#include<stdio、h>int main( ){char s1[100] , s2[30] ;int i , j ;printf( "Please input s1:" ) ;gets( s1 ) ;printf( "Please input s2:" ) ;gets( s2 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;for( j = 0 ; s2[j] != '\0' ; j++ , i++ )s1[i] = s2[j] ;s1[i] = '\0' ;printf( "Output\ns1:" ) ;puts( s1 ) ;return 0 ;}5、【参考代码】#include<stdio、h>int main( ){char s1[100] ;int i ;printf( "Please input s1:" ) ;gets( s1 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;printf( "The length of s1 is %d\n" ,i ) ;return 0 ;}第7章函数1 max is 22 a=1,b=23 1 114 a=11,b=12,c=25 66 7 8 97 8 178 0 1 2 0 1 2三、程序完善题1 float area ( float r ) return s2 z = fun( x , y ) z = z * x3 count =fun( score ) count++四、编程题1、【参考代码】#include<stdio、h>int main( ){void f(int n) ;int n ;printf( "Please input: n= " ) ;scanf( "%d" , &n ) ;if( n <= 0)printf( "Wrong number!\n" ) ;elsef( n ) ;return 0 ;}void f(int n){if( n % 2 == 1 )printf( "%d is a odd number、\n" , n ) ;elseprintf( "%d is a even number、\n" , n ) ; }2、【参考代码】#include < stdio、h >#include < math、h >int main( ){void f( int m ) ;int m ;printf( "Please input: m= " ) ;scanf( "%d" , &m ) ;f( m ) ;return 0 ;}void f( int m ){int i , k ;k = sqrt( m );for(i = 2 ; i <= k ; i++ )if( m % i == 0 )break;if (i >= k + 1 )printf( "%d is a Prime Number、\n" , m ) ;elseprintf( "%d is not a Prime Number、\n" , m ) ; }3、【参考代码】#include<stdio、h>int gys( int m , int n ){int r ;r = m % n ;while( r != 0 ){m = n ;n = r ;r = m % n ;}return n ;}int gbs( int m , int n , int r ){return m * n / r ;}int main( ){int m , n , t ;printf( "Please input(m,n):" ) ;scanf( "%d%d" , &m , &n ) ;if( m < n ){t = m ;m = n ;n = t ;}t = gys( m , n ) ;printf( "gys=%d\n" , t ) ;t = gbs( m , n , t ) ;printf( "gbs=%d\n" , t ) ;return 0 ;}4、【参考代码】#include<stdio、h>int main( ){void mystrcat( char s1[100] , char s2[30] ) ;char s1[100] , s2[30] ;printf( "Please input s1:" ) ;gets( s1 ) ;printf( "Please input s2:" ) ;gets( s2 ) ;mystrcat( s1 , s2 ) ;printf( "Output\ns1:" ) ;puts( s1 ) ;return 0 ;}void mystrcat( char s1[100] , char s2[30] ){int i , j ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;for( j = 0 ; s2[j] != '\0' ; j++ , i++ )s1[i] = s2[j] ;s1[i] = '\0' ;}第8章编译预处理1 6,182 153 5第9章指针二、填空题1、地址, NULL(或0)2 、char a, *p; , scanf("%c", &a); , p=&a;3、*m4、for( k=0; k<10; k++ )5、*(p+i) , p[i] , *(x+i)6、str[i]或*( str + i ) , i三、程序阅读题1、gae2、bcdABCD3、7, 8, 84、8 45、 3 14 26、efgh7、w,one8、7四、程序完善题1、a[i] 或*( a + i )2、*p!='\0' *p-'0'3、p1 p2-x4、max(int a , int b ); p = max四、编程题1、【参考代码】#include<stdio、h>void sort( int *a , int *b , int *c );int main(){int m , n , t ;printf( "Please input(m n t):" ) ;scanf( "%d%d%d" , &m , &n , &t ) ;sort( &m , &n , &t ) ;printf( "The result is :%d\t%d\t%d\n" , m , n , t ) ;return 0 ;}void sort( int *a , int *b , int *c ){int temp ;if( *a > *b ) { temp = *a ; *a = *b ; *b = temp ; }if( *a > *c ) { temp = *a ; *a = *c ; *c = temp ; }if( *b > *c ) { temp = *b ; *b = *c ; *c = temp ; }}2、【参考代码】程序1:#include <stdio、h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( "Please input(string1):" ) ;scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;m = strcompare ( s1 , s2 ) ;printf( "The result of strcompare is: %d\n" , m ) ;return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序2:#include <stdio、h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( "Please input(string1):" ) ;scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;printf( "The result of strcompare is: %d\n" , m ) ;return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序3:#include <stdio、h>int strcompare( char str1[] , char str2[] );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( "Please input(string1):" ) ;scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;printf( "The result of strcompare is: %d\n" , m ) ;return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( str1[i] == str2[i] ) &&( str1[i] != '\0' ) )i++ ;return( str1[i]- str2[i] ) ;}第10章结构体与共用体1、112 、p->next=head->next head->next=p3、p->next三、程序阅读题1、51,60,212、163、1001,ChangRong,1098、0四、程序完善题1、sizeof( struct ps ) 或sizeof( bt )2、p=p->next3、person[i]、sex五、编程题1、【参考代码】#define N 3#include <stdio、h>struct student{char num[6] ;char name[8] ;int score[2] ;float ave ;} ;void input( struct student stu[N] ) ;void average( struct student stu[N] ) ;int max( struct student stu[N] ) ;int main( ){int i , j ;struct student stu[N] ;input( stu ) ;average( stu ) ;printf( "No\tName\tScore1\tScore2\tAverage\n" ) ;for( i = 0 ; i < N ; i++ ){printf( "%s\t%s\t" , stu[i]、num , stu[i]、name ) ;for( j = 0 ; j < 2 ; j++ )printf( "%d\t" , stu[i]、score[j] ) ;printf( "%8、2f\n" , stu[i]、ave ) ;}i = max( stu ) ;printf( "\nThe max is:\n" ) ;printf( "No\tName\tScore1\tScore2\tAverage\n" ) ;printf( "%s\t%s\t" , stu[i]、num , stu[i]、name ) ;for( j = 0 ; j < 2 ; j++ )printf( "%d\t" , stu[i]、score[j] ) ;printf( "%5、2f\n" , stu[i]、ave ) ;return 0;}void input( struct student stu[N]){int i , j ;for(i=0;i<N;i++){printf("\nPlease input No%d student:\n",i+1);printf("No:");scanf("%s",stu[i]、num);printf("Name:");scanf("%s",stu[i]、name);for(j=0;j<2;j++){printf("score %d:",j+1);scanf("%d",&stu[i]、score[j]);}}}void average( struct student stu[N]){int i , j , sum ;for(i=0;i<N;i++){for(j=0 , stu[i]、ave = 0 ;j<2;j++)stu[i]、ave += stu[i]、score[j];stu[i]、ave = stu[i]、ave / 2 ;}}int max( struct student stu[N]){int i , max , index;max = stu[0]、ave ;index = 0 ;for( i = 1 ; i < N ; i++ ){if( max < stu[i]、ave ){max = stu[i]、ave ;index = i ;}}return index;}2、【参考代码】#include<stdio、h>#include<stdlib、h>struct node{short int data ;struct node *next ;} ;typedef struct node NODE ;struct node *CreatLink( ) ;void PrintLink( NODE *head ) ;int max( NODE *head );int main( ){NODE *head ;int max_value ;head = CreatLink( ) ;PrintLink( head ) ;max_value = max( head ) ;printf( "The max is:%d\n" , max_value ) ;return 0 ;}struct node *CreatLink( ){NODE *head , *p , *q ;short int num ;head = ( NODE * )malloc( sizeof( NODE ) ) ;head->next = NULL ;p = head ;printf( "Please input( end of -1)!:\n" ) ;scanf( "%d" , &num ) ;while( num != -1 ){q = ( NODE *)malloc( sizeof( NODE ) ) ;q->data = num ;p->next = q ;p = q ;scanf( "%d" , &num ) ;}p->next = NULL ;return head ;}void PrintLink( NODE *head ){NODE *p;p = head->next ;printf( "The data is:\n" ) ;while( p != NULL ){printf( "%4d" , p->data ) ;p = p->next ;}printf( "\n" ) ;}int max( NODE *head ){NODE *p;short int max = -32768;p = head->next ;while( p != NULL ){if( max < p->data )max = p->data ;p = p->next ;}return max ;}第11章位运算1、0000 11112 、x | ff003、4 3三、程序阅读题1、02、11 223、0四、编程题1、【参考代码】#include<stdio、h>int main(){short int data , low ,high ;printf( "Please input( short int):" ) ;scanf( "%d" , &data ) ;low = data & 0x00ff ; /* 0x00ff表示低字节全1 */high = data & 0xff00 ; /* 0xff00表示高字节全1 */printf( "data:0x%x,the value of low byte is:0x%x\n" , data , high ) ;printf( "data:0x%x,the value of high byte is:0x%x\n" , data , low ) ;return 0 ;}2、【参考代码】#include <stdio、h>int main( ){short int data , result ;printf( "Please intput(short int):" ) ;scanf( "%d" , &data ) ;result = data ^ 0x000f ; /* 0x000f表示低4位全1,高12位全0 */ printf( "The data is 0x%x \nThe result is :0x%x\n" , data,result ) ;return 0 ;}第12章文件操作二、填空题1、二进制ASCII(文本)2 、FILE *fp # include <stdio、h>3、n – 1 buf的首地址4、 15、用以获得文件读写位置标记指针的位置,函数返回值为当前文件读写位置标记指针相对于文件开头的字节数6、使文件读写位置标记指针重新返回文件的开头三、程序阅读题1、1 22、end3、 34、hello,四、程序完善题1、! feof (fp) fgetc (fp)2、fopen (“num、dat”,”r”) fp,”%d”,&temp z++3、( ch=getchar() ) ch , fp五、编程题1、【参考代码】#include<stdio、h>#include<stdlib、h>#include<string、h>int main( ){FILE *fp ;char str[100] , [10] ;int i = 0 ;if( ( fp = fopen( "upper、txt" , "w+" ) ) == NULL ){printf( "Cannot open file!\n" ) ;exit( 0 ) ;}printf( "Please input(string):\n" ) ;gets( str ) ;while( str[i] != '!' ){if( str[i] >= 'a' && str[i] <= 'z' )str[i] = str[i] - 32 ;fputc( str[i] , fp ) ;i++ ;}rewind( fp ) ;fgets( str , strlen( str ) + 1 , fp ) ;printf( "\nThe result is :\n" ) ;printf( "%s\n" , str ) ;fclose( fp ) ;return 0 ;}2、【参考代码】#include<stdio、h>#include<stdlib、h>#define N 5struct student{char num[10] ;char name[8] ;int score[3] ;float ave ;} stu[N] ;int main( ){int i , j , sum ;FILE *fp ;for( i = 0 ; i < N ; i++ ){printf( "\nPlease input student information: \n" , i + 1 ) ;printf( "No:" ) ;scanf( "%s" , stu[i]、num ) ;printf( "Name:" ) ;scanf( "%s" , stu[i]、name ) ;sum = 0 ;for( j = 0 ; j < 3 ; j++ ){printf( "Score%d:" , j + 1 ) ;scanf( "%d" , &stu[i]、score[j] ) ;sum += stu[i]、score[j] ;}stu[i]、ave = sum / 3、0 ;}if( ( fp = fopen( "stud、dat" , "w" ) ) == NULL ){printf( "cannot open stud for write!\n" ) ;exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof( struct student ) , 1 , fp ) ;}fclose( fp ) ;if( ( fp = fopen( "stud、dat" , "r" ) ) == NULL ){printf( "cannot open stud for read!\n" ) ;exit( 0 ) ;}printf( "\nNo\tName\tScore1\tScore2\tAverage\n" ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof( struct student ) , 1 , fp ) ;printf( "\n%s\t%s\t%d\t%d\t%5、2f\n" , stu[i]、num , stu[i]、name , stu[i]、score[0] , stu[i]、score[1] , stu[i]、score[2] ,stu[i]、ave ) ;}fclose( fp ) ;return 0 ;}3、【参考代码】#include<stdio、h>#include<stdlib、h>#define N 5struct student{char num[10] ;char name[8] ;int score[3] ;float ave ;} stu[N] ;int main( ){int i , j , min , index ;FILE *fp ;struct student temp ;/*从stud、dat文件中读入数据,存放在stu数组中*/if( ( fp = fopen( "stud、dat" , "r" ) ) == NULL ){printf( "cannot open stud for read!\n" ) ;exit( 0 ) ;}printf( "\nThe data is :" ) ;printf( "\nNo\tName\tScore1\tScore2\tAverage\n" ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student ) , 1 , fp ) ;printf( "\n%s\t%s\t%d\t%d\t%5、2f\n" , stu[i]、num , stu[i]、name , stu[i]、score[0] , stu[i]、score[1] , stu[i]、score[2] ,stu[i]、ave ) ;}fclose( fp ) ;/*对stu数组中数组元素按其平均值数据域排序*/for( i = 0 ; i < N -1 ; i++ ){min = stu[i]、ave ;index = i ;for( j = i + 1 ; j < N ; j++ ){if( min > stu[j]、ave )index = j ;}if( index != i ){temp = stu[i] ;stu[i] = stu[index] ;stu[index] = temp ;}}/*将排序之后的stu数组存放在stu_sort文件中*/if( ( fp = fopen( "stu_sort、dat" , "w" ) ) == NULL ){printf( "cannot open stud for write!\n" ) ;exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof(struct student) , 1 , fp ) ;}fclose( fp ) ;/*将stu_sort文件中的数据,读出存放在stu数组中*/if( ( fp = fopen( "stu_sort、dat" , "r" ) ) == NULL ){printf( "cannot open stud for read!\n" ) ;exit( 0 ) ;}printf( "\nThe result is:" ) ;/*将stu数组中的数据输出*/printf( "\nNo\tName\tScore1\tScore2\tAverage\n" ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student) , 1 , fp ) ;printf( "\n%s\t%s\t%d\t%d\t%5、2f\n" , stu[i]、num , stu[i]、name , stu[i]、score[0] , stu[i]、score[1] ,stu[i]、score[2] , stu[i]、ave ) ;}fclose( fp ) ;return 0 ;}。
C语言程序设计习题集3
C语⾔程序设计习题集3指针⼀单项选择题(每题2分,共40分)1 以下叙述中错误的就是_B__。
A 在程序中凡就是以“#”开始的语句⾏都就是预处理命令⾏B 预处理命令⾏的最后不能以分号表⽰结束C #define MAX就是合法的宏定义命令⾏D C程序对预处理命令⾏的处理就是在程序执⾏的过程中进⾏的2 若程序中有宏定义⾏:#define N 100 ,则以下叙述中正确的就是__B_。
A 宏定义⾏中定义了标识符N的值为整数100B 在编译程序对C源程序进⾏预处理时⽤100替换标识符NC 对C源程序进⾏编译时⽤100替换标识符ND 在运⾏时⽤100替换标识符3 若有如下宏定义:#define N 2#define y(n) ((N+1)*n)则执⾏下列语句:z=4*(N+y(5));后的结果就是_B__。
A 语句有错误B z值为68C z值为60D z值为1804 以下程序运⾏后的输出结果就是_A__。
#define F(X,Y) (X)*(Y)main(){ int a=3,b=4;printf("%d\n",F(a++,b++));}A 12B 15C 16D 205 以下程序运⾏后的输出结果就是_C__。
#define f(x) (x*x)main(){ int i1,i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}A 64,28B 4,4C 4,3D 64,646 若已定义a为int型变量,则__D_就是对指针变量p的正确说明与初始化。
A int p=&a;B int *p=a;C int *p=*a;D int *p=&a;7 已知下列说明语句:static int a[]={2,4,6,8}static int *p[]={a,a+1,a+2,a+3};int **q;q=p;则表达式**(q+2)的值就是_A__。
C语言程序设计题集
44
当n=100时,计算输出下列多项式的值 ,按四舍五入的方式精确到小数点后第三位。
0.691
45
当n=20时,求 的值。要求按四舍五入的方式精确到小数点后第二位。
534.19
46
当n=50时,求下列级数和: ,要求按四舍五入的方式精确到小数点后第四位。
0.9804
47
当n的值为25时,计算下列公式的值: 。要求按四舍五入的方式精确到小数点后第四位。
38
6
自然数对是指两个自然数的和与差都是平方数,如8和17的和25与差9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A>=B,求所有小于或等于100(即A<=100,B<=100)的自然数对中B之和。
1160
7
把18元钱分成1元、2元和5元的纸币共为10张的分法有多少种?(注:在兑换中1元、2元、5元的纸币数可以为0)
235
50
德国数学家歌德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数的和。但有些偶数可以分解成多种素数对的和,如:10=3+7,10=5+5,即10可以分解成两种不同的素数对。试求12346可以分解成多少种不同的素数对(注:A+B与B+A认为是相同素数对)。
124
51
斐波那契数列的前两项是1,1,其后每一项都是前面两项之和,求:10000000以内最大的斐波那契数。
7921
84
求满足A*B=718368,使A+B最小,且A,B(A<B)为正整数的A的值。
672
85
求满足条件abcd*e=dcba的最小四位数abcd,其中a,b,c,d均为0到9的数字,但a非0,e非0非1。
谭浩强c语言程序设计习题集
目录重要次重要重复或欲删除基础第一章C语言概述1.1 选择题1.2 填空题第二章数据类型、运算符与表达式2.1 选择题2.2 填空题第三章最简单的C程序设计3.1 选择题3.2 填空题第四章逻辑运算和判断选取控制4.1 选择题4.2 填空题4.3 编程题第五章循环控制5.1 选择题5.2 填空题5.3 编程题第六章数组6.1 选择题6.2 填空题6.3 编程题第七章函数7.1 选择题7.2 填空题7.3 编程题第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针9.1 选择题9.2 填空题9.3 编程题第十章结构体和共用体10.1 选择题10.2 填空题10.3 编程题第十一章位运算11.1 选择题11.2 填空题11.3 编程题第十二章文件12.1 选择题12.2 填空题12.3 编程题第一章C语言概述1.1 选择题*1.1一个C程序的执行是从。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。
但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。
*1.2以下叙述正确的是。
A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
(完整版)C语言程序设计习题集及答案
C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
完整版C语言程序设计练习题含程序及参考答案
完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。
```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。
```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n){if (n <= 1){return false;}for (int i = 2; i * i <= n; i++){if (n % i == 0){return false;}}return true;}int main(){int n;printf("请输入一个整数n:"); scanf("%d", &n);if (isPrime(n)){printf("%d是素数。
《C语言程序设计基础》习题集(含答案)
第一章C语言概述1.1、选择题(1)一个C语言程序是由()组成。
A. 一个主程序及若干个子程序B. 一个主程序C. 一个主函数及若干个子函数D. 一个主函数(2) 一个C语言程序总是从()开始执行。
A. 主过程B. 主函数C. 子程序D. 主程序(3) main函数在源程序中的位置()。
A. 必须在最开始B. 必须在子函数的后面C. 可以任意D. 必须在最后(4) 一个C程序的执行是从()。
A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到最后一个函数结束C. 本程序的main函数开始,通常也在main函数结束D. 本程序的第一个函数开始,到main函数结束(5) 以下叙述不正确的是()。
A. 一个C程序可由一个或多个函数组成B. 一个C程序必须包含一个main函数C. 在C程序中,注释只能位于一条语句的最后面D. C程序的基本组成单位是函数1.2、编程题(1)参照本章例题,编程输出如下信息:**********Very good!**********(2)编写一个C程序,输出以下信息:******Turbo C ** * * * *1.3 请根据自己的认识,写出C语言的主要特点。
1.4 简述C程序主要由哪些部分构成?1.5 用户编写的C程序上机运行要经过哪些步骤?第二章基本数据类型和表达式2.1 单项选择题(1) 以下不能用作变量名的是()A)_26 B)case C)scanf D)Double(2) 以下合法的八进制数是()A)0135 B)068 C)013.45 D)o7(3) 若变量已正确定义,以下非法的表达式是()A)a/=b+c B)a%(4.0) C)a=1/2*(x=y=20,x*3) D)a=b=c (4) 设x 为int 类型,其值为11,则表达式:(x++*1/3)的值是()A)3 B)4 C)11 D)12(5) 若题中各变量已正确定义并赋值,下面符合C 语法的表达式是()A )a%=7.6; B)a++,a=7+b+c C)int(12.3)%4 D)a=c+b=a+7 (6) 设k 和x 均为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) (7) 能正确表示数学公式|)sin(|x ,的C 语言表达式是()A)sqrt(abs(sin(x*π/180)))B)sqrt(abs(sin(x*3.14/180))) C)sqrt(sin(x))D)sqrt (fabs (sin(x*3.14/180)))(8) 以下变量x 、y 、z 均为double 型且已正确赋值,不能正确表示代数式z y x的C 语言表达式是()A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z (9) 以下叙述中正确的是()A ) A )C 程序中,赋值运算符的优先级最低。
C语言程序设计习题集第4章 循环结构(答案)
第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.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序main(){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。
C语言程序设计习题集7-10套
for(i=0;i<N;i++)
for(j=0;(5);j++)
{ t=a[i][j];
(6);
a[j][i]=t;
}
}
4、用递归法求n!
递归公式如下:
#include<stdio.h>
int jx(int n)
{
int f;
if(n==1)(7);
else f=(8);return来自f;}main()
{
int n,f;
printf(“Input n :”);
scanf(“%d”,&n);
f= jx(n);
printf("\n n!=%d",f);
}
5、求3*4数组中的最大值及其下标。
#include <stdio.h>
main()
{ int a[3][4]={{1,2,3,4}, {9,8,7,6},{-10,10,-5,2}};
}
四、编写程序(每题10分,共30分)
1.编写一个程序,提示用户输入一个用磅表示的重量,然后程序将磅转换为公斤。输出转换结果。已知1磅=454克,1公斤=1000克。
2.编写程序,判断整数n的奇偶性。n由键盘输入。如果n为0则输出“zero”,若为奇数则输出“odd”,若为偶数则输出“even”。
3.编写一个函数,计算下面公式:
8.jx(n-1)*n
9.max=a[i][j];
10.colum=j
四、根据题目要求编写完整程序(每题10分,共30分)
1、
#include<stdio.h>
voidmain()
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指针单项选择题 (每题2分,共40分)1以下叙述中错误的是—B_。
A 在程序中凡是以“ #”开始的语句行都是预处理命令行B 预处理命令行的最后不能以分号表示结束C #define MAX 是合法的宏定义命令行DC程序对预处理命令行的处理是在程序执行的过程中进行的2若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是_________ B_o A宏定义行中定义了标识符N的值为整数100B在编译程序对C源程序进行预处理时用100替换标识符NC对C源程序进行编译时用100替换标识符ND 在运行时用100替换标识符3 若有如下宏定义:#define N 2#define y(n) ((N+1)*n)则执行下列语句:z=4*(N+y (5));后的结果是—B__。
A 语句有错误B z 值为68C z 值为60D z 值为1804以下程序运行后的输出结果是—A_。
#define F(X,Y) (X)*(Y)main(){ int a=3,b=4;printf("%d\n",F(a++,b++));}A 12B 15C 16D 20 5以下程序运行后的输出结果是—C_。
#define f(x) (x*x)main(){ int i1,i2;i1=f(8)/f(4); i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}A 64,28B 4,4C 4,3D 64,646若已定义a为int型变量,则______ D—是对指针变量p的正确说明和初始化A int p=&a;B int *p=a;C int *p=*a;D int *p=&a;7 已知下列说明语句:static int a[]={2,4,6,8}static int *p[]={a,a+1,a+2 ,a+3};int **q;q=p;则表达式**(q+2)的值是—A_。
A 6B 2C 4D 88 下面是一个初始化指针的语句:int *px=&a; ,其中指针变量的名字应该A *pxB aC pxD &a9若指针px为空指针,则—B_。
的地址为零A px 指向不定B px 的值为零C px 的目标为零D px10对下语句int *px[10];,下面正确的说法是—B ___________ 。
A px是一个指针,指向一个数组,数组的元素是整数型。
B px 是一个数组,其数组的每一个元素是指向整数的指针。
CA和B均错,但它是C语言的正确语句。
D C 语言不允许这样的语句。
11具有相同基类型的指针变量p和数组y,下列写法中不合法的是—匚A p=yB *p=y[i]C p=&y[i]D p=&y12 已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p; ,则表达式*(p[0]+1)+**(q+2) 的值是—A_。
A 5B 4C 6D 713说明语句int *(*p)(); 的含义为—D_。
A p 是一个指向int 型数组的指针B p 是指针变量, 它构成了指针数组Cp是一个指向函数的指针,该函数的返回值是一个整型Dp是一个指向函数的指针,该函数的返回值是一个指向整型的指针14 设有如下程序段char s[20]="Beijing",*p; p=s;贝U执行p=s;语句后,以下叙述正确的是—A ______ 。
A 可以用*p 表示s[0]B s 数组中元素个数和p 所指字符串长度相等C s 和p 都是指针变量D数组s中的内容和指针变量p中的内容相同void main(){ static char a[]="language",b[]="program";char *ptr1=a,*ptr2=b;int k;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));}A gaeB gaC language D17以下程序执行后的输出结果是— Avoid fun1(char *p){ char *q;q=p;15 设 int 型变量 i 、n 均已定义,指针变量 s1、s2 各指向一个字符串循环中,下列语句用以实现将 中代码正确的是—A _____A *s1++=*s2++; C *(s1+n-1)=*(s2+n-1); 16 给出下列程序的运行结果#include <stdio.h>s2 所指字符串中前 n 个字符复制到 在 for(i=0;i<n;i++) s1 所指字符串中, 其 B s1[n-1]=s2[n-1];D *(++s1)=*(++s2);有语法错误while(*q!='\0'){ (*q)++; q++; }}main(){ char a[]={"Program"},*p;p=&a[3]; fun1(p); printf("%s\n",a); }A ProhsbnB PrphsbnC Progsbn18以下程序执行后的输出结果是—C_。
void swap(char *x,char *y){ char t;t=*x; *x=*y; *y=t;}main(){ char *s1="abc",*s2="123";swap(s1,s2); printf("%s,%s\n",s1,s2);}A 123,abcB abc,123C 1bc,a2319以下程序执行后的输出结果是—C_omain()D Program D 321,cba{ char *p[]={"3697","2584"};int i,j; long num=0;for(i=0;i<2;i++){ j=0;while(p[i][j]!='\0'){ if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0';j+=2;}}printf("%d\n",num);}A 35B 37C 39D 397520下列程序运行后的输出结果是—A_。
void main(){ char str[]="The_Microsoft"; int n=4;sub(str,0,n-1);sub(str,0,strlen(str)-1);printf("%s\n",str);sub(str, n1,n2)char *str;int n1, n2;{ char c,*p;p=str+ n2;str=str+ n1;while(strvp){ c=*str; *str=*p; *p=c;sM++; p--;}}A tfosorciMThe_ B. ehT_Microsoft C tfosorciM_ehT D. Microsoft_The1填空题(每空3分,共30分)2468 。
1以下程序的定义语句中,x[1]的初值是2—,程序运行后输出的内容是mai n(){ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;for(i=0; i<4; i++){ p[i]=&x[2*i+1]; printf("%d", p[i][0]); } prin tf("\n");2以下程序的输出结果是 2 5 。
void swap(i nt *a, int *b){ int *t;t=a; a=b; b=t;}mai n(){ int i=2,j=5,*p=&i,*q=&j;swap(p,q); prin tf("%d %d\n",*p,*q) }3以下程序的输出结果是_4—。
mai n(){ int a[5]={2,4,6,8,10}, *p;p=a; p++;prin tf("%d", *p);}4以下程序的输出结果是_55_ 0#defi ne M 5#defi ne N M+M mai n(){ int k;k=N*N*5; printf("%d\n",k);}5若有定义语句:int a[4]={0,1,2,3},*p;p=&a[1]; 则++(*p)的值是_2 ____ 。
6若有定义:int a[2][3]={2,4,6,8,10,12}; 则*(&a[0][0]+2*2+1) 的值是12 , *(a[1]+2)的值是12 。
7若有程序段:int *p[3],a[6],i;for(i=0;i<3;i++) p[i]=&a[2*i];则*p[0]引用的是a数组元素a[0] , *(p[1]+1)引用的是a数组元素a⑶三程序填空题(每空3分,共30分)1下面函数的功能是从输入的十个字符串中找出最长的那个串,请填空使程序完整。
void fun (char str[10][81],char **sp){ int i;*sp = 【1 】str[0];for(i=1;i<10; i++)if(strle n(*sp)<strle n(str[i]))}2下面函数的功能是将一个整数字符串转换为一个整数,例如:填空使程序完整。
int chnu m(char *p){ int num=O,k,le n,j;len=strle n( p);for(;【3】*p ; p++){ k=【4】*p-'O' ; j=(--len);while(【5】j-- ) k=k*10;num=nu m+k;}return (nu m);}3下面函数的功能使统计子串substr 在母串str 中出现的次数,int coun t(char *str, char *substr){ int i,j,k, num=0;for(i=0; 【6】str[i] ;i++)for(【7】j=i ,k=O:substr[k]==str[j];k++.j++)【2】*sp=str[i]"1234"转换为1234,请请填空使程序完整{ nu m++ ; break ; }return (nu m);}4下面函数的功能是用递归法将一个整数存放到一个字符数组中, 483存放成“ 384”,请填空使程序完整。