C语言模拟试题(答案)
大一c语言模拟试题二和参考答案
C语言测试题一、单项选择题(共30分,每题1分)1. 下列不正确的转义字符是A.\\B.\‘C.074D.\02. 不是C语言提供的合法关键字是A.switchB.cherC.caseD.default3.正确的标识符是()A.?a B.a=2 C.a.3 D.a_34.下列字符中属于键盘符号的是A.\B.\nC.\tD.\b.下列数据中属于“字符串常量”的A.ABCB.“ABC”C.‘ABC’D.‘A’6.c har型常量在内存中存放的是A.ASCII码B.BCD码C.内码值D.十进制代码值7.设a为5,执行下列语句后,b的值不为2的是()A.b=a/2B.b=6-(——a) C.b=a%2 D.b=a>3?2:28.在以下一组运算符中,优先级最高的运算符是()A.<=B.=C.%D.&&9.设整型变量i的值为3,则计算表达式i——i 后表达式的值是()A.0B.1C. 2D.表达式出错10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()A.6B.9C.8D.表达式出错11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.512.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果是()A.4B.3C.2D.113.设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)14.若有以下定义:char a、 int b 、 float c 、double d,则表达式a*b+d-c值的类型为()A.floatB.intC.charD.double15.表达式“10!=9”的值是()A.trueB.非零值C.0D.116.循环语句 for (x=0,y=0;(y!=123)|| (x<4);x++);的循环执行()A.无限次B.不确定次C.4次D.3次17.在C语言中,下列说法中正确的是()A. 不能使用“do while”的循环B.“do while”的循环必须使用break语句退出循环C.“do while”的循环中,当条件为非0时将结束循环D.“do while”的循环中,当条件为0时将结束循环。
C语言试题(部分有答案)
选择题1.1.一个C程序的执行是从()A.本程序的main函数开始,到main函数结束。
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束1.2.以下叙述正确的是()A.在C语言中,main函数必须位于程序的最前面。
B.C语言的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C语言进行编译的过程中,可发现注释中的拼写错误1.3.C语言规定:在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后2.2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A.7 B.8 C.6 D.22.3.若有说明语句:char c=‟\66‟ ; 则说明c ()A.包括1个字符B.包括2字符C.包括3字符D.一个不合法的表达式,c的值不确定2.4.设变量a 是int,f是float, i是double,则表达式10+‟a‟+i*f值的数据类型为()A.int B.float C.double D.不确定3.1.已知ch是字符变量,下面不正确的赋值语句是()A.ch=‟a+b‟B.ch=‟\0‟C.ch=‟7‟+‟8‟D.ch=5+93.2.设x、y均为float型变量,则以下不合法的赋值语句是()A.++x B.y=(x%2)/10 C.x*=y+8 D.x=y=04.1.逻辑运算符两侧运算对象的数据类型()A.只能是0或1 B.只能是0或非0整数C.只能是整型或字符型数据D.可以是任何类型数据4.2.判断char型变量ch是否为大写字母的正确表达式是()A.‟A‟<=ch<=‟Z‟B.(ch>=‟A‟)&(ch<=‟Z‟)C.(ch>=‟A‟)&&(ch<=‟Z‟) D.(…A‟<=ch)AND(…Z‟>=ch)4.3.已知x=43,ch=‟A‟,y=0;则表达式(x>=y&&ch<‟B‟&&!y)的值是()A.0 B.语法错C.1 D.‟假‟4.4.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()If(x>y)z=x;x=y;y=zA.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=204.5.以下程序的运行结果是()main(){int m=5;if (m++>5) printf(“%d”,m);else printf(“%d”,m--);}A.4 B.5 C.6 D.74.6.以下程序的运行结果是()main(){ int k=4,a=3,b=2,c=1;printf(“%d”,k<a?k:c<b?c:a);}A.4 B.3 C.2 D.15.1.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.2.语句while(! E);中的表达式!E等价于()A.E= =0 B.E ! = 1 C.E ! = 0 D.E= =15.3.下面程序段的运行结果是()int n=0;while(n++<=2); printf(“%d”,n);A.2 B.3 C.4 D.有语法错5.4.以下程序段()x=-1;do{x=x*x}while(! x)A.死循环B.循环执行二次C.循环执行一次D.有语法错误5.5.以下不是无限循环的语句是()A.for(y=0,x=1;x>y++y;x=i++) i=x; B. for( ; ; x++=i );C.while(1){x++;} D.for(i=10; ;i--)sum+=i5.6.执行语句for(i=1;i++<4; );后变量i的值是()A.3 B.4 C.5 D.不确定6.1.在C语言中,引用数组元素时,其下标的数据类型允许是()A.整型常量B.整型表达式C.A或B D.任何类型6.2.若有说明:int a[][4]={0,0};则下面不正确的叙述是()A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值06.3.若二维数组a有m列,则在a[i][j]前的元素个数为()A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+16.4.下面程序的运行结果是()main(){ int a[6], i ;For (i=1; i<6; i++){ a[i] = 9 * (I – 2 + 4 * ( i > 3)) % 5;Printf( “%2d”, a[i] );}}A. -4 0 4 0 4B. -4 0 4 0 3C. -4 0 4 4 3D. -4 0 4 4 06.5 下面程序段的运行结果是()char c[5] = {…a‟, …b‟, …\0‟, …c‟, …\0‟};printf(“%s”, c);A. …a‟‟ b‟B. abC. ab cD. ab6.6 下面程序段的运行结果是()char a[7] = “abcdef”;char b[4] = “ABC”;strcpy(a, b);printf(“%c”, a[5]);A. 空格B. \0C. eD. f6.7 有下面程度段char a[3], b[]= “China”;a = b;printf(“%s”, a);则()A.运行后将输出China B.运行后将输出ChC.运行后将输出Chi D.编译出错6.8 下面程序的功能是将字符串s中所有的字符c删除。
C语言答案
C语言答案C语言模拟题答案一、选择题:1、下列哪一个选项不是结构化程序三种基本结构的共同特点:D:有分支结构2、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是:B:2,0,33、若整型变量A、B、C、D中的值依次为:1、4、3、2。
则条件表达式DA:14、表示数学中的关系x<y<z,在c语言中所对应的表达式是:< p="">B:(x < y) && (y < z)5、在C语言中,设x为int型变量,则执行以下语句后,x的值为x=10; x=x+- -x;:C:186、在C语言中,执行下面语句后,输出的结果是int x=10,y=3; printf("%d\n",y=x/y);C:37、在C语言中,假定所有变量均已正确说明,下列程序段运行后x 的值是a=b=c=0;x=99;if(!a) x=9;else x=3;B:98、在C语言中,执行语句:for (i=1; i<4; i++);后,变量i的值是:B:49、设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是:A:无限和010、执行语句printf("He question is in c:\\tools\book. exe" );其输出为:C:He question is in c:\toolook.exe11、函数float AAA(float x,int y){ float i,fc=1;while( y>0 ){fc *=x; y--;}return fc;}的功能是:A:求x的y次方12、对两个静态字符数组A和B进行如下初始化。
static char A[]="ABCDEF";static char B[]={'A','B','C','D','E','F'};则下列叙述正确的是:D:A数组长度比B数组长13、对于for(表达式1;;表达式3)可理解为:B:for(表达式1;1;表达式3)14、C语言中,FILE结构指针变量名stdin代表哪类文件。
c语言试题带答案
C语言模拟题二C语言模拟题二一、单项选择题1.程序中定义以下宏#define S(a,b)a*b若定义int area;且令area=S(3+1,3+4),则变量area的值为_________A 10B 12C 21D 282.正确的标识符是_________A ifB a=2C a.3D a_33.表达式1&3&5&7的值为_________A 1B 3C 5D 74.语句printf(″s\\t″)的输出结果为_________A s\\tB s\tC s\D s5. 执行下列语句后,sum变量的值是_________int sum=0;for(int i=0;i<10;i++,sum+=i);A 45B 55C 0D 编译错误6.已知有共用体变量data1定义如下:union data{ int i;char ch;float f;} data1;则变量data1所占的内存存储空间可表示为_________A sizeof(int)B sizeof(char)C sizeof(float)Dsizeof(int)+sizeof(char)+sizeof(float)7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示_________A 已读到此文件末尾B 未读到此文件的末尾C 此文件已关闭D此文件尚未被打开8.以下c语言函数声明中,不正确的是_________A void fun (int x,int y);B fun (int x,int y);C int fun (int x,y);D char *fun (char *s);9.若有语句if(x==0) y=5;则与条件x==0等价的表达式为_________A xB !xC x!=1D 以上都不对10.在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为A)ABCdef B)abcDEF C)abc D)DEF#includemain( ){ 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");}11.下面不能正确进行字符串赋值操作的语句是_______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);12.若x=4,则x*=x+2的值为_________A 36B 24C 18D 2013.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为_________A 1B 2C 4D 514.设a为5,执行下列语句后,b的值不为2的是_________A b=a/2B b=6-(--a)C b=a%2D b=a<32?2:115.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是_________A p2=**p1B p2=*&p1C p2=*p1D p2=&*p116.以下运算符中,运算对象必须是整型的是_________A /B %=C != D〈=17.以下关于typedef的叙述中错误的是_________A用typedef可以增加新的类型B用typedef可以定义各种类型名,但不能用来定义变量C用typedef只是将已有的类型用新的标识符来代表D使用typedef有利于程序的通用和移植18.若执行完成下列语句:int a=3,b=6,c;c=a∧b<<2;则变量c的二进制值为_________A 00011100B 00010100C 0001000D 0001101119.以下关于宏替换的叙述不正确的是_________A宏替换只是字符替换B宏名无类型C宏替换不占用运行时间D宏替换不占用编译时间20. 以下对枚举类型名的定义中正确的是_________A enum s={a,b,c}B enum s {a=9,b=2,c}C enum s={′a′,′b′,′c′}D enum s{′a′,′b′,′c′}二、判断题1.若有说明int c;则while (c=getchar());是错误的C语句。
C语言200道练习试题和答案
A)<=
B)=
C)%
D)&&
26.表达式(a=2,3) , a+1的值是【 C 】。
A)0 B)2
C)3
D)4
27.若执行printf("%d\n", strlen("a\n\"\x41"))语句其输 出结果是【 D 】。
A)8 B)7 C)6
D)4
28.在循环语句的循环体中执行break语句, 其作用是【 A 】。 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行
则输出是【 d 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
43.如果有
int a, b; scanf(“%d,%d”, &a, &b);语句,
则输入数据时,只可以用【 d 】作为输入的分隔符
A)TAB键 B)空格
C)回车
C)20,10 D)20,20
24.若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是【 B 】。
A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定
25.在以下一组运算符中,优先级最高的运算符是【 C 】
int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678
c语言模拟考试题及答案
c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。
答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。
答案:continue4. C语言中,使用________关键字可以立即退出循环。
C语言程序设计模拟试题1(附答案)
《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
c语言模拟题
考生答案
未提交
六、程序设计题
1、
在考生文件夹下,要求程序PROG.C的功能是:
统计字符串中空格和非空格的个数。
例如,当字符串为:"Goodbye 1234!***"
输出:空格:1,非空格:15
部分源程序存在文件PROG.C中。
请在fun( )函数中的/*******begin********/ 与 /********end*********/
之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。
注意:main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。
运行并调试程序,然后将源程序文件PROG.C提交。
考生答案:B 试题答案:A 判题结果:×
8、
有如下说明:
int a[10]={0,1,2,3,4,5,6,7,8,9};
则数值不为9的表达式是________。
A) a[10-1] B) a[8]
C) a[9]-0 D) a[9]-a[0]
考生答案:B 试题答案:B 判题结果:√
9、
函数调用:strcat(strcpy(str1,str2),str3)的功能是________。
b=64;
c=(a>b)?a-b:b-a;
printf("c=%d\n",c);
fprintf(fp,"c=%d\n",c);
fclose(fp);
}
考生答案
未提交
四、程序改错题
1、
在考生文件夹下,给定程序MODI.C的功能是:
c语言试题及答案大全
c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
专升本c语言模拟试题及答案
专升本c语言模拟试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,哪个是正确的?A. 函数可以没有返回值B. 函数必须有返回值C. 函数不能有参数D. 函数不能返回结构体答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于指针的描述中,哪个是错误的?A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针不能进行算术运算答案:D5. 在C语言中,以下哪个选项是正确的?A. 变量名区分大小写B. 变量名不区分大小写C. 变量名可以以数字开头D. 变量名可以包含空格答案:A6. C语言中,以下哪个选项是合法的数组声明?A. int arr[10];B. int arr[10] = {0};C. int arr = 10;D. int arr[] = {1, 2, 3};答案:A7. 下列关于C语言预处理指令的描述中,哪个是正确的?A. #include 用于包含库文件B. #define 用于定义宏C. #ifdef 用于条件编译D. 以上都是答案:D8. 在C语言中,以下哪个选项是正确的?A. switch语句不能嵌套B. switch语句可以嵌套C. switch语句中不能使用breakD. switch语句中可以使用continue答案:A9. 下列关于C语言中循环的描述中,哪个是错误的?A. for循环可以无限循环B. while循环可以无限循环C. do-while循环可以无限循环D. 循环中不能使用break语句答案:D10. 在C语言中,以下哪个选项是正确的?A. 变量的声明必须在函数的开始处B. 变量的声明可以在函数的任何地方C. 变量的声明必须在函数的结束处D. 变量的声明只能在函数的中间答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以进行逻辑与运算。
C语言程序设计模拟试题1(附答案)
C语言程序设计模拟试题1(附答案)《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是()。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。
A) MAIN B) _HJ C) 2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是()。
A) \r B) \n C) \b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。
A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 15、已知ch为字符型变量,下面表达式中正确的是()。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是()。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是()。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为()。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是()。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是()A) 数组的首地址 B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是( )A) char s[5]={"ABCD"}; B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 ( )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是()int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
计算机二级《C语言》模拟试题及答案3篇
计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。
他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。
在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。
C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。
丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。
strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。
在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。
如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。
在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。
C语言程序设计模拟试卷及答案
C语言程序设计模拟试卷及答案(1)一、填空题1、C语言中基本的数据类型有:______、______ 、______ .2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ .3、整数-35在机内的补码表示为______.4、执行下列语句int a=8; a+=a-=a*a;后,a的值是______.5、有如下语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]=______.6、符号“a”和‘a’的区别是______.7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______.8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a 的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______.二、选择题1、设整型变量a为5,使b不为2的表达式是()。
A. b=a/2B. b=6-(——a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else 总是与()组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf(“%d %d\n”,x——,——y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为()。
A.P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i5、选出下列标识符中不是合法的标识符的是()。
A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是()。
C语言模拟测试题一及答案
模拟题一一、选择题1.下列说法正确的是()。
A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.C语言中不能用来表示整常数的进制是()。
A)十进制B)十六进制C)八进制D)二进制3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。
A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型4.C语言规定标识符由()等字符组成。
A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。
A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是()。
A)2.500000 B)3.500000 C)4.500000 D)5.0000007.设有如下定义和执行语句,其输出结果为()。
int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 38.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。
A)int B)float C)char D)double9.C语言中,运算对象必须是整型数的运算符是()。
A)%B)\C)% 和\D)**10.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为()。
A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言模拟题十套附答案
第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置(C)A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由(B)括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是(D)A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5B. 1E5.1C. ‘a12’D. 32766L15、以下(D)是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下(C)是正确的字符常量A. “c”B. ‘//”C. ‘W’D. “\32a”17、以下(A)是不正确的字符串常量A. ‘abc’B. “12’12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码B. 反码C. 补码D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是(D)A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2B. x=(y==1)C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成(可是是字母和数字组合)D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5B. 1C. 6D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. ‘A’与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)C. ‘A’*’B’是不合法的D. “A”+”B”是合法的只能字符间运算37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)A. 1B. 0C. 6D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A. 1B. 0C. 2D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A. 7B. 8C. 9D. 10 (i++要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A. 8B. 6C. 7D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A. 4B. 5C. 6D. 7 ( i先运算再--44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a);B. scanf(“%l f”,&a);不可能是实数C. scanf(“%c”,&a);D. scanf(“%u”,&a);十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A. B.C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是(A)int a=0,b=0,c=0;if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是()void main(){int a=65;c har c=’A’;printf(“%x,%d”,a ,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为(A)A. 1B. tC. 0D. f (有符号的比较,按负数进行比较)59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不是零就是一A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为()A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。
c语言模拟题1(有答案)
模拟题1一、单选题(本大题10小题,每题2分,共20分)1.C语言表达式a=15,a%6的值是_______AA.3B.5C.非法表达式D.152.循环语句中,continue语句的作用是______AA.结束本次循环B.跳出子函数C.从本循环体内跳出D.终止程序3.定义一个返回值为int 的无参函数cacul的正确语句是______CA.void cacul(void);B.void cacul(int);C.int cacul();D.int cacul;4.下面运算优先级按从高到低的排列正确的是_____AA.条件运算赋值运算逗号运算B.算术运算逻辑运算关系运算C.逻辑运算关系运算赋值运算D.位运算算术运算赋值运算5.以下叙述中,正确的是_____BA.C程序中,main函数必须位于程序最前面B.C语言本身没有输入和输出语句C.在对一个C程序进行编译的过程中发现注释中的拼写错误D.C程序中每行中只能写一个语句6.数组age[2][4]的非法引用是________AA.age[3][0]B.&age[0][0]C.age[0][1]D.age[1][1+1]7.变量定义int x, a=3, b=4;则语句x = ( a = 0 ) && ( b = 8 ); 执行之后各变量的值为______BA.x =0, a=3, b=4B.x =0, a=0, b=4C.x =0, a=3, b=8D.x =0, a=0, b=88.下列_________语句正确定义字符数组。
CA.char x[4]= "hello"B.char x[5]= "hello"C.char x[]= "hello"D.char x[4+1]= "hello"9.下面四个程序段中,不能输出23个*号的程序段是________DA.for(int i=0;i<23;i++) putchar(‘*’)B.for(int j=23;j>0;j--) putchar(‘*’)C.int k=23;while (k>0) {putchar(‘*’);k--}D.int i=0;while(i>23) {putchar(‘*’);i++;}10.若x是整型变量,y是单精度浮点型变量,值为10,表达式x = y/4 的值是_____C 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1.有如下程序:main(){ int a=1,b=2;a+=b;b=a-b;a-=b;printf("%d,%d\n",a,b);}该程序的输出结果是【】。
A.1,2 B.2,1 C.2,2 D.3,22.有以下程序: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.120。
3.有以下程序:main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}执行后输出结果是【】。
A.5 B.4 C.6 D.不确定4.有如下程序:f(int a){ int b=0; static int c=3;b++;c++;return(a+b+c) ;}main(){ int a=2,i;for(i=0;i<3;i++)printf("%2d",f(a));}该程序的输出结果是【】。
A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 85.有如下程序段:main(){ int a,b,c=246;a=c/100%9;b=(-1) && (-1);printf("%d,%d\n",a,b);}输出结果是【】。
A.2,1 B. 3,2 C. 4,3 D. 2,-16.有如下程序:main(){ char str[ ][20]={"Hello","Beijing"}, *p=str;printf("%d\n",strlen(p+22));}该程序的输出结果是【】。
A.0 B.5 C.7 D.207.有如下程序:#define U 2#define V U+2#define X V*V/2main(){printf("%d\n",5*X);}该程序的输出结果是【】。
A.10 B.20 C.15 D.408.有以下程序:main(){ int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++) s+=a[i][1];printf("%d\n",s);}程序运行后的输出结果是【】。
A.11 B.19 C.13 D.209.有如下程序:main(){ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}输出结果是【】。
A.0 B.1 C.10 D.910.有以下程序:#include <string.h>main(int argc,char *argv[]){ int i,len=0;for(i=1;i<argc;i++)len+=strlen(argv[i]);printf("%d\n",len);getch();}程序编译连接后生成的可执行文件是ex1.exe。
若运行时输入带参数的命令行是:ex1 abcd efg 10<回车>则运行的结果是【】。
A.22 B.17 C.12 D.9 二、阅读程序,写出运行结果1.以下程序的输出结果是【】。
#include <stdio.h>main(){int i=010,j=10;printf("%d,%d\n",++i,j--);}2.以下程序的输出结果是【】。
main(){ int a,b;for(a=1,b=1; a<=100;a++){ if(b>=10) break;if(b%3==1){ b+=3;continue;}}printf("%d\n",a);}3.以下程序的输出结果是【】。
void fun(int k){ static int a;printf("%d,", a);a += k;}main(){ int k;for (k=1; k<=3; k++)fun(k);}4.以下程序的输出结果是【】。
main( ){ struct st{int x, y;} a[4]={{10,20},{30,40},{50,60},{70,80}};struct st *p=a;printf("%d,", p++->x);printf("%d,", ++p->y);printf("%d\n", (a+3)->x);}5.以下程序的输出结果是【】。
fun(int a, int b){if(a>b)return(a);elsereturn(b);}main(){int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf("%d\n", r);}6.以下程序的输出结果是【】。
long int fun(int x){ int p;if (x==0||x==1)return 1;elsereturn x*fun(x-1);}main(){ int n;for (n=4;n>=1;n--)printf("%2d",fun(n));}三、填空题1.下面程序是计算1-3+5-7+ … -99+101的值,请填空。
main(){ int i,m,t=1,s=0;for(i=1; ;i=i+2){ m= ;s=s+m;t=-t;}printf("%d\n",s);}2.下列程序段以函数swap调用的形式实现两个变量值的互换,请填空。
swap(int * m,int * n){ int temp;temp= ;;*n= ;}main(){ int x,y;scanf("%d,%d",&x,&y);swap( );printf("%d,%d",x,y);}3.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。
struct st{ char name[20];double score;};main(){ struct st ex;printf("ex size: %d\n",sizeof( ));}4. 以下程序将数组a中的数据按逆序存放,请填空。
#define M 8void main(){ int a[M], i, j, t;for(i=0; i<M; i++) scanf("%d",a+i);i=0; j=M-1;while(i<j){ t=*(a+i);;*()=t;i++;j--;}for(i=0; i<M; i++) printf ("%3d",*(a+i) );}5. 下面程序把从终端读入的10个整数以二进制数方式写到一个名为“lut2010.dat”的文件中,请填空。
#include <stdio.h>main( ){ int i,j;FILE *fp;if ((fp= fopen(, "wb")) == NULL)exit(0);for (i=0;i<10;i++){scanf("%d",&j);fwrite(&j,sizeof(int),1,fp);};}四、编程题1.使用printf()函数编写一个可以显示下面图形的程序(编译器支持汉字):********************我的C语言程序。
********************2.编写一个程序,从键盘输入一个正数作为半径,计算并显示圆的周长和面积。
3.编写程序,输出从公元1000年~2000年所有闰年的年号。
判断闰年的条件是:(1)公元年数如能被4整除,而不能被100整除,则是闰年。
(2)公元年数能被400整除也是闰年。
4.编写程序输出下列形式的杨辉三角形的前10行。
11 11 2 11 3 3 11 4 6 4 1……………………(要求必须用循环结构实现)5.编写一个函数strcopy,实现库函数strcpy函数的功能。
参考答案一、选择题二、阅读程序,写出运行结果三、填空题1.i<=101i*t2.*m*m=*ntemp&x,&y3.struct st4. *(a+i)=*(a+j)*(a+j)5. "lut2010.dat"fclose(fp)四、编程题参考程序:1.#include "stdio.h"void main(){printf("********************\n");printf(" 我的C语言程序。
\n");printf("********************\n");}2.#include "stdio.h"#define PI 3.1415main(){float r,l,s;scanf("%f",&r);l=2*r*PI;s=r*r*PI;printf("周长=%f,面积=%f\n",l,s);}3.#include "stdio.h"leap(int year){ int l;l=year%4==0&&year%100!=0||year%400==0;return l;}main(){ int year;for(year=1000;year<=2000;year++)if(leap(year)) printf("%d\n",year);}4.#include "stdio.h"main(){ int i,j,n=10;for(i=0;i<=n;i++){ for(j=1;j<=20-2*i;j++)printf(" ");for(j=1;j<i+2;j++)printf("%4d",c(i,j));printf("\n");}}c(int i,int j){ int t;if((j==1)||(j==i+1))return 1;else t=c(i-1,j-1)+c(i-1,j);return t;}5.char *strcopy(char *str2, char *str1) { int i=0;while(str1[i]!='\0'){ str2[i] = str1[i];i++;}str2[i]='\0';}。