赞
踩
目录:
一:单项选择【60个】
2.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是()
5.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()
7.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
16.假定所有变量均已正确定义,下列程序段运行后x的值是()
20.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()
21.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()
22.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()
27.若char a[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()
32.C语言允许函数类型缺省定义,此时函数值隐含的类型是()
33..若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()
35.若有定义int a[10],*p=a;,则p+5表示()
36.若有说明:int *p,m=5,n;以下正确的程序段是()
39.int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为()
40.C语言中 while 和 do-while 循环的主要区别是()
42.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()
45.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)()
48.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()
49.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()
50.若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是()
51.有定义:char*p1,*p2;则下列表达式中正确合理的是()
52.若有定义:int *p[3];,则以下叙述中正确的是()
54.设 char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数是()
57.对两个数组a和b进行如下初始化:则以下叙述正确的是()
59.对于基本类型相同的两个指针变量之间,不能进行的运算是()
二:判断【60个】
1.若i =3,则printf("%d",-i++);输出的值为 -4
5.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
6.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
7.若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6
8.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的
11.若有说明int c;则while(c=getchar());是正确的C语句
12.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11
13.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
14.while和do…while循环不论什么条件下它们的结果都是相同的.
15.char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句
16.语句scanf("%7.2f",&a);是一个合法的scanf函数
17.如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};
19.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准
20.整数 -32100可以赋值给int型和long int型变量
21.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
22.如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}
23.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.
27.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量
28.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11
30.语句scanf("%7.2f",&a);是一个合法的scanf函数
33.语句 printf("%f%%",1.0/3);输出为 0.333333
34.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准
35.若i =3,则printf("%d",-i++);输出的值为 -4
36.通过return语句,函数可以带回一个或一个以上的返回值
40.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
41.若有说明int c;则while(c=getchar());是正确的C语句
44.假设有int a[10], *p;则p=&a[0]与p=a等价
46.C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的
49.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
52.while和do…while循环不论什么条件下它们的结果都是相同的.
53.假设有int a[10], *p;则p=&a[0]与p=a等价
54.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.
59.语句 printf("%f%%",1.0/3);输出为 0.333333
三:填空【59个】
3.表达式(int)((double)(5/2)+2.5)的值是_____.
6.以下程序段的输出结果是_____、_____、_____、_____、_____
8.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____
9.结构化程序由_____、_____、_____三种基本结构组成
12.对以下数学式,写出三个等价的C语言表达式是_____、_____、_____
14.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____
16.若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是_____。请用代表Enter键
17.以下程序段的输出结果是_____、_____、_____、_____
22.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____
24.表达式(int)((double)(5/2)+2.5)的值是_____.
26.当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____
30.下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空
31.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____
32.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
33.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____
35.请写出与以下表达式等价的表达式是 A)_____B)_____
38.运用位运算,能将八进制数0125000除以4,然后赋给变量a的表达式是_____
39.在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义双精度实型变量
42.以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_____、_____、_____
45.下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空
46.设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低4位不变,则b的二进制数应该是_____
47.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
48.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____
49.若表达式(a+b)>c*2&&b!=5||!(1/2)中,a、b、c的定义和赋值为Int a=3,b=4,c=2; 则表达式的值为_____
51.当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____
57.若k为int型变量且赋值11,请写出运算k++后表达式的值_____和变量的值_____
58.将下列数学式改写成C语言的关系表达式或逻辑表达式是 A)_____B)_____
59.对以下数学式,写出三个等价的C语言表达式是_____、_____、_____
四:程序设计题【6个】
1.【程序设计】功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k〈3000)
2.【程序设计】功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变
5.【程序设计】/* 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予
6.【程序设计】功能:对某一正数的值保留2位小数,并对第三位进行四舍 五入
1.执行以下程序段后,输出结果和a的值是()
int a=10; printf("%d",a++);
A、11 和 10
B、11 和 11
C、10 和 11
D、10 和 10
答案:
C
2.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是()
A、65,66
B、A,B
C、65,68
D、A,68
答案:
A
3.相同结构体类型的变量之间,可以()
A、比较大小
B、地址相同
C、赋值
D、相加
答案:
C
4.int a[10];合法的数组元素的最小下标值为()
A、1
B、0
C、10
D、9
答案:
B
5.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()
A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
6.该程序的输出结果是( )
main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }
A、2,2
B、2,1
C、1,1
D、1,0
答案:
B
switch结构分zhidao支没加break;跳出语句,开始执行后,程序由x=1调到case 1 分支 a++(a由0自己加为1),由于没有break语句,程序继续执行到内case 2 分支 a++ b++(a由1自加变2,b由0自加为1),之后程序printf输出 a=2 ,b=1
7.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
A、不确定
B、double
C、int
D、float
答案:
B
隐含转换的规则:低类型数据转化为高类型数据,表达式结果 向高精度类型转变 double精度最高
8. 以下程序中,while循环的循环次数是______
main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } }
A、死循环,不能确定次数
B、6
C、4
D、1
答案:
A
这抄个程序有问题,在于 , 当 i = 0 时,满足 i < 10, 进入 while 循环,由于 i 也小于 1 (i<1) 跳出百进入下一个while循环。 你可以看到 while循环并没有能改变 i = 0的值。所以这是度一个死循环,永远跳不出来了。循环无限次_第一个
9.若有说明语句:char c='\72';则变量c()
A、说明不合法,c的值不确定
B、包含3个字符
C、包含1个字符
D、包含2个字符
答案:
C
文件中的代码转换为字符,因为是单个字符所以储存空间也是1字符
10.下列程序运行结果为:()
#define P 3 #define S(a) P*a*a main() {int ar; ar=S(3+5); printf("\n%d",ar); }
A、192
B、25
C、29
D、27
答案:
C
#define宏都是直接替换的,不会计算后再替换。
s(3+5) = p*3+5*3+5 = 9+15+5 =29
若想计算后在替换,需要加上括号:
#define S(a) P*(a)*(a)从s(3+5)可以知道a就是3+5,直接用3+5代入P*a*a就得到3*3+5*3+5。 这里宏定义只是个符号,将符号代入数字即可
11.C语言中不可以嵌套的是()
A、选择语句
B、循环语句
C、函数调用
D、函数定义
答案:
D
12.C语言中,逻辑"真"等价于()
A、非零的整数
B、大于零的整数
C、非零的数
D、大于零的数
答案:
C
13.用户定义的函数不可以调用的函数是()
A、本文件外的
B、main函数
C、本函数下面定义的
D、非整型返回值的
答案:
B
14.以下叙述中正确的是 ()
A、C程序中注释部分可以出现在程序中任意合适的地方
B、分号是C语句之间的分隔符,不是语句的一部分
C、花括号“{“和”}”只能作为函数体的定界符
D、构成C程序的基本单位是函数,所有函数名都可以由用户命名
答案:
A
15.下面四个选项中,均是不合法的浮点数的选项是()
A、-e3 .234 1e3
B、160. 0.12 e3
C、123 2e4.2 .e5
D、-.18 123e4 0.0
答案:
C
合法的浮点数有两种表示形式:
十进制小数形式。他有数字和小数点组成,必须有小数点。例如回(123.)(123.0)(.123)。
指数形式。如123e3。字母e(或E)之前必须有数字,e后面的指数必须为整数。
规范化的指数形式里面,小数点前面有答且只有一位非零的数字。如1.2345e8
16.假定所有变量均已正确定义,下列程序段运行后x的值是()
k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
A、15
B、14
C、3
D、4
答案:
D
17.若变量已正确定义,以下程序段的输出结果是()
x=5.16894; printf(“%f\n”, (int)(x*1000+0.5)/(float)1000);A、5.17000
B、输出格式说明与输出项不匹配,输出无定值
C、5.168000
D、5.169000
答案:
D
%f的输出格式是以带小数点的数学形式输出浮点数。首先
计算x*1000,结果为5168.94然后+0.5,结果为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,所以输出结果为5.169000
18.以下选项中合法的实型常数是()
A、5E2.0
B、1.3E
C、E-3
D、.2E0
答案:
D
19.以下程序执行后输出结果是()
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、120
C、012020
D、012
答案:
A
输出结果:011122
进入for循环
当i为0时,进百入switch语句,不等以1和2,所以执行度default语句,输出0;
i自增1,为1,进入switch语句,等于知1,所以执行case 1语句道,输出1,但是case 1语句后没有内break语句,所以还要执行case 2语句以及default语句,分别输出一个1,这一次总共容输出3个1
i自增1,为2,进入switch语句,等于2,所以执行case 2语句,输出2,但是case 2后也没有break语句,所以还要执行default语句,又输出一个2。
所以最后结果就是011122
20.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()
A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[6]至a[10]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[0]至a[4]
答案:
D
21.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()
A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
22.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()
A、int *p=&x;
B、int p=&x;
C、*p=*x;
D、int *p=x;
答案:
A
23.字符串指针变量中存入的是()
A、第一个字符
B、字符串
C、字符串的首地址
D、字符串变量
答案:
C
24.下列字符数组长度为5的是()
A、char c[10]= {'h', 'a', 'b', 'c', 'd'};
B、char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};
C、char a[]={'h', 'a', 'b', 'c', 'd'};
D、char d[6]= {'h', 'a', 'b', 'c', '\0' };
答案:
C
25.从键盘上输入某字符串时,不可使用的函数是()
A、getchar()
B、scanf()
C、fread()
D、gets()
答案:
A
getchar函数是字符输入函数,其功能是从键盘上获取一个输入字符
26.以下对整型数组a的正确说明是()
A、int n = 10, a[n];
D、int a(10);
答案:
C
27.若char a[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()
A、scanf("%s",a);
B、for(i=0;i<10;i++)a[i]=getchar();
C、a=getchar();
D、gets(a);
答案:
C
28.若有说明语句:char c='\72';则变量c()
A、说明不合法,c的值不确定
B、包含3个字符
C、包含1个字符
D、包含2个字符
答案:
C
29.以下程序的输出结果是()
main() { int i = 1, j = 3; printf(“%d,”, i++); { int i = 0; i += j * 2; printf(“%d,%d,”, i, j ); } pritnf(“%d,%d\n”, i, j ); }
A、1,6,3,2,3
B、2,7,3,2,3
C、1,7,3,2,3
D、2,6,3,2,3
答案:
A
16,3
2,3,
//1是第一个printf输出的6,3是第二个printf输出的
//2,3是最后的一个printf输出的追问
请问 i++为什么要在最后一个才加上啊?不在前面加上呢?
追答
给你举一个例子吧! int i=1; int j=1; int m=i++; int n=++j; //最后m的值为1,n的值为2,i、j的值都为2
30.以下对一维整型数组a的正确说明是()
A、#define SIZE 10 (换行) int a[SIZE];
B、int a(10);
C、int n; scanf("%d",&n); int a[n];
D、int n=10,a[n];
答案:
A
31.变量p为指针变量,若p=&a,下列说法不正确的是()
A、*(p++)==a++
B、&*p==&a
C、(*p)++==a++
D、*&a==a
答案:
A
32.C语言允许函数类型缺省定义,此时函数值隐含的类型是()
A、long
B、float
C、int
D、double
答案:
C
33..若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()
A、1
B、2.0
C、2.5
D、2
答案:
B
因为,double是双精度的浮点型,
但3/2=1,除非是3.0/2或者(double)3/2都=1.5,
所以结果为2.0
34.以下程序的输出结果是()
main() { int a = 2, b =5; printf(“a=%%d,b=%%d\n”,a, b); }A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
由于单个的%有别的用处,所以要输出单个%时必须双写成%%,显百然上例中%%d就只输出%d了;按C/C++“贪心法”%%d被解度释成(%%)d而不会解释成%(%d)。如果想达到输内出“%d”的效果,得写成%%%d才可以,这就被解释成(%%)%d了
35.若有定义int a[10],*p=a;,则p+5表示()
A、元素a[5]的地址
B、元素a[6]的地址
C、元素a[6]的值
D、元素a[5]的值
答案:
A
36.若有说明:int *p,m=5,n;以下正确的程序段是()
A、scanf("%d",&n);*p=n;
B、p=&n;*p=m;
C、p=&n;scanf("%d",*p)
D、p=&n;scanf("%d",&p);
答案:
B
A、scanf("%d",&n);*p=n;
错在*p = n, 因为p指向的空间为NULL,直接赋值n,会出错
B、p=&n;scanf("%d",*p);
错在scanf,因为是使用的是地址,应该是scanf("%d",p);
C、p=&n;scanf("%d",&p);
同上,抄应该是scanf("%d",p);
D、p=&n;scanf("%d",p);
可以看zd看scanf的使用方法,就知道这个是对的。
前面p = &n, 就是说指针指向了变量n,p就是变量n的地址。
37.下列程序的输出结果为()
main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf("%f\n",x); }A、28.000000
B、27.500000
C、28.500000
D、27.000000
答案:
D
整型 m=7,n=4
浮点自型 a=38.4 b=6.4 x也是浮点型
x=m/2+n*a/b+1/2
其中百m是整度型,m/2=3
n*a/b=24,其中n虽然是整型,但和浮点型一起运算,所以结果是浮点型
最后1/2=0,对没错1是整数2是整数,所以1/2=0无误
于是x=3+24.0000000+0=27.0000000
38.以下所列的C语言常量中,错误的是()
A、'\72'
B、0xFF
C、2L
D、1.2e0.5
答案:
D
39.int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为()
A、3
B、2
C、不一定
D、1
答案:
B
if(a>c)b=a为if语句,因为a=1,c=3不成立,未设定else语句,跳出if判定,转而执行a=c;c=b。所以c=b=2
40.C语言中 while 和 do-while 循环的主要区别是()
A、while的循环控制条件比 do-while的循环控制条件更严格
B、do-while 的循环体至少无条件执行一次
C、do-while 的循环体不能是复合语句
D、do-while 允许从外部转到循环体内
答案:
B
41 .以下程序的执行结果是________.
main() { int w = 1, x = 2, y = 3, z = 4; w =( w < x ) ? x : w; w =( w < y ) ? y : w; w =( w < z ) ? z : w; printf( "%d " , w );}
A、2
B、4
C、3
D、1
答案:
B
42.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()
A、n=*q;
B、p=q;
C、p=n;
D、*p=*q;
答案:
C
本题中首先定义了一整型变量n并赋初值为2,接着定义了一个整型指针变量p并让它指向n,接着又定义了一指向指针的指针变量q。选项A中给指针变量p赋值q,故这个赋值语句正确。选项B中*p=*q就是将*q的值赋给指针变量p所指向的变量n,故这个赋值语句不是非法的赋值语句。选项C中是将*q的值赋给变量n,故这个表达式不是非法的赋值语句。选项D中p为一指针变量,应该将一地址赋给它,而在此选项的表达式中将变量n而不是n的地址赋给它,故这个表达式不合法。
43.以下程序的输出结果是()
void prtv(int *x) { printf(“%d\n”, ++*x); } main() { int a = 25; prtv(&a); }
A、24
B、26
C、23
D、25
答案:
B
44.以下程序的输出结果是()
main() { int a = 2, b =5; printf(“a=%%d,b=%%d\n”,a, b); }
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
45.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)()
A、a\bre\'hi\'y\\\bou
B、re'hi'you
C、abre'hi'y\bou
D、a\bre\'hi\'y\bou
答案:
B
输出结果是(百 re'hi'you(回车) )。
一个一个的来看吧
a:输度出字符'a',现在显示:a
\b:退格符,回退一个字符,上面显示的a被回退,现在显示:空
r:输出字符'r',现在显示:r
e:输出字符'e',现在显示问:re
\':转义字符,输出一答个单引号专',现在显示:属re'
h:输出字符'h',现在显示:re'h
i:输出字符'i',现在显示:re'hi
\':转义字符,输出一个单引号',现在显示:re'hi'
y:输出字符'y',现在显示:re'hi'y
\\:转义字符,输出一个反斜杠\,现在显示:re'hi'y\
\b:退格符,回退一个字符,上面显示的反斜杠\被回退,现在显示:re'hi'y
o:输出字符'o',现在显示:re'hi'yo
u:输出字符'u',现在显示:re'hi'you
\n:转义字符,输出字符回车,现在显示:re'hi'you(回车)
46.以下关于运算符优先顺序的描述中正确的是()
A、关系运算符<算术运算符<赋值运算符<逻辑运算符
B、赋值运算符<逻辑运算符<关系运算符<算术运算符
C、算术运算符<关系运算符<赋值运算符<逻辑运算符
D、逻辑运算符<关系运算符<算术运算符<赋值运算符
答案:
B
sglf
47.下列语句的结果是()
main() { int j; j=3; printf("%d,",++j); printf("%d",j++); }
A、3,4
B、4,4
C、4,3
D、3,3
答案:
B
48.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()
A、6.000000
B、5.500000
C、6
D、6.500000
答案:
A
因为(int)a 是强制zd将a转换为int型,可以得到(int)a=5; b是double型,b/b=1.000000;由于版是int与double型相加,会将int型转换为double型再相加,最终得到的答案权是6.000000
49.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()
A、3.500000
B、0.000000
C、2.750000
D、2.500000
答案:
D
50.若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是()
A、a=4,b=4
B、a=3,b=3
C、a=3,b=4
D、a=4,b=3
答案:
D
51.有定义:char*p1,*p2;则下列表达式中正确合理的是()
A、p1/=5
B、p1+=5
C、p1=&p2
D、p1*=p2
答案:
C
52.若有定义:int *p[3];,则以下叙述中正确的是()
A、定义了一个名为*p的整型数组,该数组含有三个int类型元素
B、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
C、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
D、定义了一个基类型为int的指针变量p,该变量具有三个指针
答案:
C
53.C语言中,定义结构体的保留字是()
A、struct
B、union
C、enum
D、typedef
答案:
A
54.设 char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数是()
A、7
B、6
C、9
D、5
答案:
B
6个啊 还有一个结束符 你要理解转义字符整个代表一个普通字符的。也就是和一个普通字符占得字节数一样。而不能只看表面形式
\t
a
\017
b
c
\0
55.以下程序的输出结果是()
main() { int a[] = {1, 2, 3, 4}, i, x = 0; for(i = 0; i < 4; i++) { sub(a, &x); printf(“%d ”, x); } pritnf(“\n”); } sub(int *s, int *y){ static int t = 3; *y = s[t]; t--; }
A、4 4 4 4
B、0 0 0 0
C、1 2 3 4
D、4 3 2 1
答案:
D
56.以下叙述正确的是()
A、用do-while构成循环时,只有在while后的表达式为非零时结束循环
B、do-while语句构成的循环不能用其它语句构成的循环来代替。
C、用do-while构成循环时,只有在while后的表达式为零时结束循环
D、do-while语句构成的循环只能用break语句退出。
答案:
C
57.对两个数组a和b进行如下初始化:则以下叙述正确的是()
char a[] = “ABCDEF”; char b[] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
A、a与b中都存放字符串
B、a数组比b数组长度长
C、a与b长度相同
D、a与b完全相同
答案:
B
58.以下数值中,不正确的八进制数或十六进制数是()
A、-16
B、0x16
C、16
D、0xaaaa
答案:
A
59.对于基本类型相同的两个指针变量之间,不能进行的运算是()
A、+
B、<
C、=
D、-
答案:
A
60.执行下列语句后的结果为()
int x=3,y; int *px=&x; y=*px++;
A、x=3,y=4
B、x=3,y不知
C、x=4,y=4
D、x=3,y=3
答案:
D
1.若i =3,则printf("%d",-i++);输出的值为 -4
答案:错误
2.表达式 (j=3, j++) 的值是4
答案:错误
3.C语言中只能逐个引用数组元素而不能一次引用整个数组
答案:正确
4.参加位运算的数据可以是任何类型的数据
答案:错误
只能用于整型操作数
5.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
答案:错误
6.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
答案:正确
7.若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6
答案:正确
8.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的
答案:错误
9.#define 和printf 都不是C语句
答案:正确
Printf是标准库里的函数。
#define只是一个宏,在预处理是用,不是语句。
C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。 C语句可分为以下五类: 一、表达式语句 表达式语句由表达式加上分号“;”组成。 其一般形式为:表达式;执行表达式语句就是计算表达式的值和执行副作用。 例如: x=y+z;a=520;赋值语句; y+z;加法运算语句,但计算结果不能保留,无实际意义; i++; 自增1语句,i值增1。 i++; 是先运算i后再加1。 ++i; 是先把i值增1后运算。 包括空语句,函数调用语句在内都属于表达式语句。 二、标签语句 标签语句有3种: 标签名:语句 case 常量表达式:语句 default:语句 说明:其中case语句和default语句只出现于switch语句中。 三、循环语句 循环语句有4种,分别是 while ( expression ) statement do statement while ( expression ) ; for ( expression(opt) ; expression(opt) ; expression(opt) ) statement for ( declaration expressionopt ; expressionopt ) statement 循环语句用于实现程序的循环流程。 四、复合语句 用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如 { x=y+z; a=b+c; printf(“%d%d”,x,a); } 是一条复合语句。 五、跳转语句 跳转语句有4种,分别是 goto 标签 ; continue ; break ; return 表达式(可选) ; 跳转语句控制程序跳转到另一处执行。
10.关系运算符<= 与 == 的优先级相同
答案:错误
11.若有说明int c;则while(c=getchar());是正确的C语句
答案:正确
12.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11
答案:错误
13.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
答案:正确
14.while和do…while循环不论什么条件下它们的结果都是相同的.
答案:错误
15.char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句
答案:正确
16.语句scanf("%7.2f",&a);是一个合法的scanf函数
答案:错误
17.如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};
答案:错误
18.x*=y+8 等价于 x=x*(y+8)
答案:正确
19.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准
答案:正确
20.整数 -32100可以赋值给int型和long int型变量
答案:正确
21.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
答案:错误
22.如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}
答案:错误
23.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.
答案:错误
24.C语言所有函数都是外部函数.
答案:错误
25.#define 和printf 都不是C语句
答案:正确
26.循环结构中的continue语句是使整个循环终止执行
答案:错误
27.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量
答案:正确
28.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11
答案:错误
29.c程序总是从程序的第一条语句开始执行.
答案:错误
30.语句scanf("%7.2f",&a);是一个合法的scanf函数
答案:错误
31.两个字符串中的字符个数相同时才能进行字符串大小的比较
答案:错误
32.7&3+12的值是15
答案:错误
33.语句 printf("%f%%",1.0/3);输出为 0.333333
答案:错误
34.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准
答案:正确
35.若i =3,则printf("%d",-i++);输出的值为 -4
答案:错误
36.通过return语句,函数可以带回一个或一个以上的返回值
答案:错误
37.int i,*p=&i;是正确的C说明
答案:正确
38.a=(b=4)+(c=6) 是一个合法的赋值表达式
答案:正确
39.十进制数15的二进制数是1111.
答案:正确
40.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"
答案:正确
41.若有说明int c;则while(c=getchar());是正确的C语句
答案:正确
42.C语言中"%"运算符的运算对象必须是整型.
答案:正确
43.c程序总是从程序的第一条语句开始执行.
答案:错误
44.假设有int a[10], *p;则p=&a[0]与p=a等价
答案:正确
45.#define 和printf 都不是C语句
答案:正确
46.C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的
答案:正确
47.十进制数15的二进制数是1111.
答案:正确
48.x*=y+8 等价于 x=x*(y+8)
答案:正确
49.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28
答案:错误
50.关系运算符<= 与 == 的优先级相同
答案:错误
54.参加位运算的数据可以是任何类型的数据
答案:错误
52.while和do…while循环不论什么条件下它们的结果都是相同的.
答案:错误
53.假设有int a[10], *p;则p=&a[0]与p=a等价
答案:正确
54.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.
答案:错误
55.函数strlen("ASDFG\n")的值是7
答案:错误
56.7&3+12的值是15
答案:错误
57.表达式 (j=3, j++) 的值是4.
答案:错误
58.a=(b=4)+(c=6) 是一个合法的赋值表达式
答案:正确
59.语句 printf("%f%%",1.0/3);输出为 0.333333
答案:错误
60.若有定义和语句:
int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:
10,A,12.5,则a=10,c='A',f=12.5.
答案:正确
1.表达式3.5 + 1 / 2的计算结果是_____
答案:
空 1:
3.5
2.请写出以下程序的输出结果_____
main() { int a = 100; if( a > 100) printf(“%d\n”, a > 100); else printf(“%d\n”, a <= 100); }
答案:
空 1:
3.表达式(int)((double)(5/2)+2.5)的值是_____.
答案:
空 1:
4
4.阅读下面程序,程序执行后的输出结果为_____
#include "stdio.h" main() { char a,b; for(a=′0′,b=′9′;a<b;a++,b--) printf("%c%c",a,b); printf("\n"); }
答案:
空 1:
0918273645
5.以下程序段的输出结果是_____
int i = 0, sum = 1; do { sum += i++; } while( i < 5); printf(“%d\n”, sum);
答案:
空 1:
11
6.以下程序段的输出结果是_____、_____、_____、_____、_____
int x = 0177; printf(“x = %3d, x = %6d, x = %6o, x = %6x, x = %6u\n”, x, x, x, x, x);
答案:
空 1:
x = 127
空 2:
x = 127
空 3:
x = 177
空 4:
x = 7f
空 5:
x = 127
7.以下程序的输出结果是_____
main() { int a = 3, b = 2, c = 1; c -= ++b; b *= a + c; { int b = 5, c = 12; c /= b * 2; a -= c; printf(“%d, %d, %d, ”, a, b, c ); a += --c; } printf(“%d, %d, %d\n”, a, b, c); }
答案:
空 1:
2,5,1,2,3,-2
8.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
9.结构化程序由_____、_____、_____三种基本结构组成
答案:
空 1:
顺序
空 2:
条件分支 【或】 选择
空 3:
循环
10.阅读下面程序,程序执行后的输出结果是_____
#include "stdio.h" main() { int x,y,z; x = 1; y = 2; z = 3; if(x>y) if(x>z)printf("%d",x); else printf("%d",y); printf("%d\n",z); }
答案:
空 1
11.请写出以下程序的输出结果_____
main() { int a = 100; if( a > 100) printf(“%d\n”, a > 100); else printf(“%d\n”, a <= 100); }
答案:
空 1:
1
12.对以下数学式,写出三个等价的C语言表达式是_____、_____、_____
答案:
空 1:
a/c/b 【或】 a/(b*c) 【或】 a/b/c
空 2:
a/c/b 【或】 a/b/c 【或】 a/(b*c)
空 3:
a/b/c 【或】 a/c/b 【或】 a/(b*c)
13.表达式3.5 + 1 / 2的计算结果是_____
答案:
空 1:
3.5
14.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____
答案:
空 1:
4.2
空 2:
4.2
15.以下程序的执行结果是_____
main() { int k=8; switch(k) { case 9: k+=1; case 10: k+=1; case 11: k+=1; break; default: k+=1; } printf("%d\n",k); }
答案:
空 1:
9
16.若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是_____。请用<CR>代表Enter键
scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);
答案:
空 1:
10A20B30C40D<CR>
17.以下程序段的输出结果是_____、_____、_____、_____
double a = 513.789215; printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lf\n”, a, a, a, a);
答案:
空 1:
a = 513.789215
空 2:
a = 513.79
空 3:
a = 513.78921500
空 4:
a = 513.78921500
18.以下程序的输出结果是_____
main() { int a=0; a+=(a=8); printf("%d\n",a); }
答案:
空 1:
16
19.以下程序的执行结果是_____
main() { int a, b, *p = &a, *q = &b; a = 10; b = 20; *p = b; *q = a; printf(“a = %d, b = %d\n”, a, b); }
答案:
空 1:
a = 20, b = 20
20.以下程序的输出结果是_____
main() { int x = 2; while ( x-- ); printf(“%d\n”, x); }
答案:
空 1:
-1
21.以下程序的执行结果是_____
main() { int k=8; switch(k) { case 9: k+=1; case 10: k+=1; case 11: k+=1; break; default: k+=1; } printf("%d\n",k); }
答案:
空 1:
9
22.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____
答案:
空 1:
float a1 = 1.0, a2 = 1.0;
23.以下程序的输出结果是_____
#define PR(ar) printf(“ar = %d “, ar) main() { int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15}, *p = a + 5; for(j = 3; j ; j--) switch( j ) { case 1: case 2: PR(*p++); break; case 3: PR(*(--p) ); } }
答案:
空 1:
ar=9 ar=9 ar=11
24.表达式(int)((double)(5/2)+2.5)的值是_____.
答案:
空 1:
4
25.表达式3.5 + 1 / 2的计算结果是_____
答案:
空 1:
3.5
26.当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____
if(a > c) b = a; a = c; c = b;
答案:
空 1:
3
空 2:
2
空 3:
2
27.阅读下面程序,则执行后程序的结果为_____
#include "stdio.h" main() { int a=0,b=0; while(a<15) a++; while(b++<15); printf("%d,%d\n",a,b); }
答案:
空 1:
15, 16
28.有以下程序段:
s = 1.0; for(k = 1; k <= n; k++) s = s + 1.0 / (k * (k + 1)); printf(“%f\n”, s); 请填空,使下面的程序段的功能完全与之等同。 s = 0.0; _____; k = 0; do { s += d; _____; d = 1.0 / (k * (k + 1)); }while(_____ ); printf(“%f\n”, s);
答案:
空 1:
d = 1.0
空 2:
k++
空 3:
k <= n
29.以下程序的输出结果是_____
main() { int x = 2; while ( x-- ); printf(“%d\n”, x); }
答案:
空 1:
-1
30.下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空
main() { int i, x, y=1; scanf("%d", &x); for(i=2; i<= _____; i++) if_____{ y=0; break;} printf("%d\n", y); }
答案:
空 1:
x / 2
空 2:
!(x % i) 【或】 x % i == 0
31.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____
答案:
空 1:
4.2
空 2:
4.2
32.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
答案:
空 1:
1
33.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
34.若从键盘输入58,则以下程序输出的结果是_____
main() { int a; scanf"%d",&a); if(a>50)printf("%d",a); if(a>40)printf("%d",a); if(a>30)printf("%d",a); }
答案:
空 1:
585858
35.请写出与以下表达式等价的表达式是 A)_____B)_____
A)!(x>0) B)!0
答案:
空 1:
x <= 0
空 2:
1
36.以下程序的输出结果是_____
main() { int a=0; a+=(a=8); printf("%d\n",a); }
答案:
空 1:
16
37.以下程序的执行结果是_____
main() { int a, b, *p = &a, *q = &b; a = 10; b = 20; *p = b; *q = a; printf(“a = %d, b = %d\n”, a, b); }
答案:
空 1:
a = 20, b = 20
38.运用位运算,能将八进制数0125000除以4,然后赋给变量a的表达式是_____
答案:
空 1:
a = 0125000>>2
39.在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义双精度实型变量
答案:
空 1:
int
空 2:
float
空 3:
double
40. 以下程序段的输出结果是_____
int i = 0, sum = 1; do { sum += i++; } while( i < 5); printf(“%d\n”, sum);
答案:
空 1:
11
41.表达式3.5 + 1 / 2的计算结果是_____
答案:
空 1:
3.5
42.以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_____、_____、_____
int k; flaot a; double x; scanf(“%d%f%lf”, &k, &a, &x); printf(“k = %d, a = %f, x = %f\n”, k, a, x);
答案:
空 1:
100 25.81 1.8923
空 2:
100 25.81 1.8923
空 3:
100 25.81 1.8923
43.阅读下面程序,程序执行后的输出结果为_____
#include "stdio.h" main() { char a,b; for(a=′0′,b=′9′;a<b;a++,b--) printf("%c%c",a,b); printf("\n"); }
答案:
空 1:
0918273645
44.以下程序的输出结果是_____
unsigned fun6(unsigned num) { unsigned k = 1; do { k *= num % 10; num /= 10; } while( num); return k; } main() { unsigned n = 26; printf(“%d\n”, fun6(n)); }
答案:
空 1:
12
45.下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空
main() { int i, x, y=1; scanf("%d", &x); for(i=2; i<= _____; i++) if_____{ y=0; break;} printf("%d\n", y); }
答案:
空 1:
x / 2
空 2:
!(x % i) 【或】 x % i == 0
46.设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低4位不变,则b的二进制数应该是_____
答案:
空 1:
11110000
47.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
答案:
空 1:
1
48.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____
答案:
空 1:
float a1 = 1.0, a2 = 1.0;
49.若表达式(a+b)>c*2&&b!=5||!(1/2)中,a、b、c的定义和赋值为Int a=3,b=4,c=2; 则表达式的值为_____
答案:
空 1:
1
50.以下程序的执行结果是_____
#define PRINT(V) printf(“V = %d\t”,V) main() { int a, b; a = 1; b = 2; PRINT(a); PRINT(b); }
答案:
空 1:
V = 1 V = 2
51.当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____
if(a > c) b = a; a = c; c = b;
答案:
空 1:
3
空 2:
2
空 3:
2
52.下列程序的执行结果是_____
int d = 1; fun(int p) { int d = 5; d += p++; pritnf(“%d “, d); } main() { int a = 3; fun(a); d += a++; printf(“%d\n”, d); }
答案:
空 1:
8 4
53.以下程序的输出结果是_____
double sub(double x, double y, double z) { y -= 1.0; z = z + x; return z; } main() { double a = 2.5, b = 9.0; printf(“%f\n”, sub(b - a, a, b)); }
答案:
空 1:
15.500000
54.以下程序段的输出结果是_____
int k, n, m; n = 10; m = 1; k = 1; while( k <= n ) m *= 2; printf(“%d\n”, m);
答案:
空 1:
无输出结果 【或】 死循环 【或】 死循环无输出结果
55.阅读下面程序,程序执行后的输出结果是_____
#include "stdio.h" main() { int x,y,z; x = 1; y = 2; z = 3; if(x>y) if(x>z)printf("%d",x); else printf("%d",y); printf("%d\n",z); }
答案:
空 1:
3
56.函数体由符号_____开始,用符号_____结束
答案:
空 1:
{
空 2:
}
57.若k为int型变量且赋值11,请写出运算k++后表达式的值_____和变量的值_____
答案:
空 1:
11
空 2:
12
58.将下列数学式改写成C语言的关系表达式或逻辑表达式是 A)_____B)_____
A)a=b或a<c B)|x|>4
答案:
空 1:
a==b || a<c
空 2:
abs(x)>4 【或】 x<-4 || x>4
59.对以下数学式,写出三个等价的C语言表达式是_____、_____、_____
答案:
空 1:
a/c/b 【或】 a/(b*c) 【或】 a/b/c
空 2:
a/c/b 【或】 a/b/c 【或】 a/(b*c)
空 3:
a/b/c 【或】 a/c/b 【或】 a/(b*c)
1.【程序设计】功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k〈3000)
#include <stdio.h> #include"conio.h" void bky(); int fun(int k) { /**********Begin**********/ /********** End **********/ } main() { int m; printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %d\n", fun(m)); bky(); } void bky() { FILE *IN,*OUT; int s ; int t; int o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); }
示例代码:
int a=0,b=0; while((k>=2)&&(b<10)) {if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } return a;
2.【程序设计】功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变
#include "string.h" #include <stdio.h> void bky(); void change(char str[]) { /**********Begin**********/ /********** End **********/ } main() { void change(); char str[40]; gets(str); change(str); puts(str); bky(); } void bky() { FILE *IN,*OUT; char i[200]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } fscanf(IN,"%s",i); change(i); fprintf(OUT,"%s\n",i); fclose(IN); fclose(OUT); }示例代码:
int i; for(i=0;str[i]!='\0';i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32;
3.【程序设计】题目:用while语句求1~100的累计和
void bky(); int fun(int n) { /**********Begin**********/ /********** End **********/ } void main() { int sum = 0; sum=fun(100); printf ("sum = %d\n", sum); bky(); } void bky() { FILE *IN,*OUT; int i; int iIN,iOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); }示例代码:
int i=1,sum=0; while(i<=n) { sum=sum+i; i++; } return sum;
4.【程序设计】功能:求一个四位数的各位数字的立方和
#include <stdio.h> void VV(); int fun(int n) { /********** Begin **********/ /********** End ***********/ } main() { int k; k=fun(1234); printf("k=%d\n",k); VV(); } void VV() { FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen("22.IN","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("22.out","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<10;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); }示例代码:
int d,k,s=0; while (n>0) { d=n%10; s+=d*d*d; n/=10; } return s
5.【程序设计】/* 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予
主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/
#include <stdlib.h> #include <stdio.h> #include <time.h> void fun(int a[], int n , int *max, int *d ) { /********** Begin **********/ /********** End ***********/ } void NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, x[20], max , index, n = 10, j ; fp = fopen("bc06.in","r") ; if(fp == NULL) { printf("数据文件bc06.in不存在!") ; return ; } wf = fopen("bc06.out","w") ; for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < n ; j++) fscanf(fp, "%d,", &x[j]) ; fun( x, n , &max, &index); fprintf(wf, "Max=%d,Index=%d\n", max, index) ; } fclose(fp) ; fclose(wf) ; } main() { int i, x[20], max , index, n = 10; srand(time(0)); for (i=0;i < n;i++) {x[i] = rand()%50; printf("%4d", x[i]) ; } printf("\n"); fun( x, n , &max, &index); printf("Max =%5d , Index =%4d\n",max, index ); NONO(); }
示例代码:
int i,base,subscript; base=a[0]; /*假定第一个元素的值最大*/ subscript=0; /*subscript用于存放数组下标*/ for(i=1;i<n;i++) { if(a[i]>base) { /*将数组中的其他元素与变量base作比较,如果大于它则交换两者的值*/ subscript=i; base=a[i]; } } *max=base; /*将最大值元素的值赋给*max*/ *d=subscript; /*将最大值元素的下标赋给*d*/
6.【程序设计】功能:对某一正数的值保留2位小数,并对第三位进行四舍 五入
#include "stdio.h" #include "conio.h" float fun(float h) { /*********Begin**********/ /********** End **********/ } main() { float m; void TestFunc(); printf("Enter m: "); scanf("%f", &m); printf("\nThe result is %8.2f\n", fun(m)); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int s ; float t; float o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(s=1;s<=5;s++) { fscanf(IN,"%f",&t); o=fun(t); fprintf(OUT,"%8.2f\n",o); } fclose(IN); fclose(OUT); }示例代码:
int i; i=(int)(h*1000)%10; if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。