
2.在C语言中,不能被调用的函数是main()_函数。
3.C语言程序总是从_主函数开始执行,并且终止于该函数。
4.若自定义函数要求返回一个值,则应在该函数体中有一条return_语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型符_void。
5.printf()函数中的“\\n”表示换行_作用。
6.C语言所提供的基本数据类型包括:单精度型、双精度型、整型_、字符型_。
7.C语言程序,关键字必须使用小写_字母。
8.若定义int a=8,则表达式a+=a-=a*=a的值是_0。
9._printf()函数的功能是按照指定的输出格式在显示器上显示指定的内容。
10.若有定义int5 w=5,x=2,y=3,z=4,则条件表达式w 12.当m=3,n=4,a=5、b=1、c=2时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为0_,m的值为_1,d的值为0_。 13.scanf函数和printf函数中的%d表示将待输出的数据按带符号的十进制_格式输出。 14.C语言提供的三种逻辑运算符是&&_、||_、_!。 15.在数组定义的格式中,方括号中的元素个数只能是整型常_量。 16.比较两个字符串是否相等的应用库函数strcmp()_. 17.在C语言中,一个函数一般由函数首部_和函数体_两个部分组成。 18.函数中的形参和调用时的实参都是数组名时,传递方式为地址传递_;都是变量时,传递方式为_值传递. 19.#define命令容许宏名带参数,称之为带参数_的宏 20.在C语言中,预处理命令都以#_开头。 21.所谓的“指针”就是变量的存储地址_;%运算符的作用是_取余. 1.C语言中语句的结束符是(;) 2.下面不正确的C语言字符串常量时c A.“1234” B.‘DEF’ C.“7” D。“ ” 3.C源文件的扩展名为(c) 4.下面4个选择中,不合法标识符的选项是(float) 5.合法注释时(/*This is fantasy*/) 6.以下描述中正确的是:(c) A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但是必须有输入 C)用C程序实现的算法可以没有输入但是必须有输出 D)用C程序实现的苏凡可以既没有输出也没有输入 7.以下关于运算符优先级顺序描述正确的是(c) 赋值运算符 逻辑运算符 关系运算符、算数运算符、、 8.判断char型变量ch是否为数字的正确表达式为:(c) A)’0’<=ch<=9 B)(ch>=’0’)&(ch<=’9’) C)(ch>=’0’)&&(ch<=’9’) D)(‘0’<=ch)AND(9>=ch) 9.C语言提供的逻辑非运算符分别是c A)|| B)&& C)! D)& 10.语言中函数体用(D)起来 A) < > B) ( ) C) [ ] D) { } 11.下面有关for循环正确描述是D A)for循环只能用于循环次数已经确定的情况 B)for最先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环语句中,可以包换多条语句,但必须用花括号括起来 12.C语言程序的基本单位是D 程序 语句 字符 函数 13.判断char型变量ch是否为小写字母的正确表达式为(ch>=’a’)&&(ch<=’z‘) 14.以下定义不正确的是D A) #define A 234 B)#define Pi 3.14259 C)int func(int a,float b) D)static char ch; 15.在C语言中,预处理命令都以(A )开头 A) # B)* C)& D)/* 16.同时定义b和d两个变量为浮点型数据时,中间用(A )分割。 A) , B) ; C)。 D)、 17.在宏定义#define PI 3.1415中,宏名PI替代的是一个 (A ) 字符串 单精度数 双精度数 常量 18.以下不合法的C语言赋值语句为D ++a; n=(n=(p=0)); a=b==c; k=a+b=1 19.要使指针变量p指向一维数组a的第3个元素(下标为2的那个元素),正确的赋值表达式为:B P=&a或p=&a[2] P=a+2或p=&a[2] P=a+2或p=a[2] P=&a+2或p=a[2] 20.以下不正确的说法为:D 在不同函数中可以使用相同名字的变量 形式参数是局部变量 在函数内容定义的变量只在本函数范围内有效 在函数内的复合语句中定义的变量在本函数范围内有效 21.已知各变量的类型说明为:int S=10,k,a,b, double z=1.4,y=5.6 则以下符合C语言语法的表达式是:A b+=a=(b=4)*(a=3) a=a*6=1 z%(-6) y=double (S) 程序填空 1.下面程序的功能是输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数字本身,例如,153=13+53+33 【此题有两种方法】 #include main() { int a,b,c,i; for (i=0;i<=999;i++) { a=i%10; b=(i/10)%10; c=i/100; if(i==(a*a*a+b*b*b+c*c*c)) printf(“%d\n”,i); } 或者 #include main() { int a,b,c,str,i; for (i=0;i<=999;i++) { a=i%10; b=(i/10)%10; c=i/100; sqr= a*a*a+b*b*b+c*c*c; if(sqr==i) printf(“%d\\n”,i); } 2.下面程序的功能是求下面分数序列的前10项之和:,,……填写完整程序,使得程序实现其功能。 #include main() { float a,b,t,sum; int i; a=2,b=1,sum=0; for(i=1;i<=10;i++) { t=a/b; sum+=t; a=a+b; b=a-b; } printf("sum=%f\\n",sum); } 3. 用近似公式计算e的值,要求误差小于10-5 e=1++++…+ #include main() { double e=1.0; int i=1,sum=1; while((1.0/sum)>1e-5) { e=e+1.0/sum; i++; sum=sum*i; } printf(“i=%d,e=%f\\n”,i,e); } 4. 从键盘输入一个字符,判断该字符的类型,若该字符是数值,则直接输出;若该字符是字母,则输出该字母;若是其他字符,则输出“Other character”。 #include main() { char ch; printf(“Input a character:”); ch=getchar(); if(ch>=’0’&&ch<=’9’) printf(“%c\\n”,ch); else if((ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’)) printf(“%c\\n”,ch); else printf(“Other character\\n”); } 5. 从键盘输入3个整数放到一维数组a中,经过计算后输出第一个数组元素。 #include main() { int a[3]={3*0}; int i; for (i=0;i<3;i++) scanf(“%d”,&a[i]); for(i=1;i<3;i++) a[0]=a[0]+a[i]; printf(“%d\\n”,a[0]); } 五读程序写结果 1. #include main() { int x[6]={1,2,4,6,8,10},*p; for(p=x;p } 答案:2,6,10 2. #include main() { static char s[]={“ABCHJK”}; char*p=s; *(p+2)+=3; printf(“%C,%C\\n”,*p,*(p+2)); } 答案:A,K 3. #include #define DouBLE(r) r*r main() { int x=4,y=8·t; t=DouBLE(x-y); printf(“t=%d\\n”,t); } 答案:t=28 4. #include #define MIN -40 main() { int x=20,y=10; #if(MIN #else printf(“%d\\n”,y); #end if } 答案:20 5. #include #define K(x,y) x=x+y,y=x-y,x=x-y main() { int a=10,b=67; K(a,b); printf(“a=%d,b=%d\\n”,a,b); } 答案:a=67,b=10 6. #include main() { int a[]={1,2,3,4,5,6}*p; p=a; *(p+3)+=2; printf(“%d,%d\\n”,*p,*(p+3)); } 答案:1,6 7. #include void f() { static int a[3]=[2,4,6]; int i; for(i=0;i<3;i++) a[1]+=a[i]; for (i=0;i<3;i++) printf(“%d,”,a[i]); printf(“\\n”) } main() { f(); f(); } 答案: 4,8,12 8,16,24 8.#include void f() { int a=5; static int b=6; a--; b--; printf(“a%d,b=%d\\n”,a,b); } main() { f() f() } 答案:a=4,b=5 a=4,b=4 9. #include func(int a,int b) main() { static int m=1,i=2; i+=m+1; m=i+a+b; return(m) } main() { int k=3,m=1,p; p=func(k,m); printf(“%d\\n”,p); p=func(k,m); printf(“p=%d\\n”,p); } 答案:8,17 10.#include #include main() { char pw[]=”1 2 3 4 5 6”, char c[10]={“1 2 3 4 5”}; if(strcmp(pw,c)==0) printf(“sorry!\\n”); else printf(“welcome!\\n’); } 答案:sorry! 11.#include #include main() { int i,j=0,a=3; for(i=0;i<3;i++) do { if(j%2) break; a+=2; j++; } while(j<10); printf(“a=%d,j=%d\\n",a,j); } 答案:a=5,j=1 12. #include main() { char a[20]=”china”,b[20]; int i=0 printf(“a strring:%s\\n”,a); do b[i]=(a[i]>=’a’&&a[i]<=’z’)? a[i] -32:a[i]; while(a[i++]!=’\\0’); printf(“b strring=%s\\n”,b); } a string:China b string:CHINA 设计一个子函数,求两个正整数的最大公约数,从主函数输入两个正整数并输出 main() { int m,n; printf("Please input two numbles."); scanf("%d,%d\\n",&m,&n); printf("The max is %d\\n",f_Max(m,n)); } 解 int f_Max(int x,int y) { int z; z=x%y; while(z!=0) { x=y; y=z; z=x%y; } return y; } 最小公倍数 int f_min(int x,int y) { int z,t; t=y; z=x%y; while(z!=0) { x=y; y=z; z=x%y; } return (x*t/y); }
