《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(26页珍藏版)》请在三一办公上搜索。
1、C语言实验报告有如下程序:#includestdio.hint main( ) int a=-1;printf(%d,%o,%x,%u,a,a,a,a);return 0; 程序的运行结果是_。你的答案: -1,37777777777,ffffffff,4294967295 参考答案: 2、 有如下程序:#includestdio.h int main( ) char c1=97,c2=98; int a=97,b=98;printf(%3c,%3cn,c1,c2);printf(%d,%dn,c1,c2);printf(%c,%cn,a,b); return 0;最后一个printf语句的运
2、行结果是_。你的答案: a,b 参考答案: 3、 有如下程序:#includestdio.hint main( ) int i,j; i=3; j=4;printf(%d %dn,i+,+j);printf(%d,%dn,i,j);printf(%d,%dn,-i+,-+j);return 0;最后一个printf语句的运行结果是_。你的答案: -4,-6 参考答案: 4、 有如下程序:#includestdio.hint main( ) _a=7;float x=2.5,y=4.7,z;z= x + a % 3 * (int) (x + y) % 2 / 4; printf(%fn,z);r
3、eturn 0; 请在空白处填空,将程序补充完整。 你的答案: int 从键盘上输入:32 18<CR>,运行结果是_。#includestdio.h int main( ) int i,j;printf(Enter i,jn);scanf(%d%d,&i,&j);printf(i=%d,j=%dn,i,j);return 0;你的答案: i=32,j=18 参考答案: 2、 如果下面程序运行结果是i=12,j=-4,从键盘应输入:_。#includestdio.hint main( ) int i,j;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%dn,
4、i,j);return 0;你的答案: i=12,j=-4 参考答案: 3、 输入一个大写字母A,将它转换为小写字母a,输出小写字母a及对应的ASCII值97。要求输出格式为:j=a,j=97。输出语句应为_。#includestdio.h int main( ) int j;char i;scanf(%c,&i);j=i+32;输出语句;return 0;你的答案: printf(j=%c,j=%dn,j,j); 参考答案: 4、 将a,b两个变量的值交换后,要求按“a=2,b=1”格式输出。划线处应当填写:_。#includestdio.hint main( ) int a=1,b=2,t
5、;t=a;a=b;b=t;_ ;return 0;你的答案: printf(a=%d,b=%dn,a,b) 参考答案: 下面程序的功能是实现表达式z=,请将程序填写完整。#includestdio.hint main( ) int x, y, z;printf(Please input x,y:);scanf(%d%d,&x,&y);if (_) z=x;else z=y;printf(z=%d,z);return 0;你的答案: x>=y 参考答案: 2、 下面程序的运行结果为_。#includestdio.hint main( ) int a=3,b=5,c=8;if(a+<3 &
6、 c-!=0) b=b+1;printf(a=%d,b=%d,c=%dn,a,b,c);return 0;你的答案: a=4,b=5,c=8 参考答案: 3、 程序填空,从键盘上输入x的值,按下式计算y的值。 x x<1y= 2x-1 1x<10 3x-11 x10#include stdio.hint main( ) float x,y;printf(x=);scanf(%f,&x);if ( _ ) y=x;else if( x<10&x>=1 )y=2*x-1;elsey=3*x-11;printf(y=%fn,y);return 0;你的答案: x<1 参考答案:
7、4、 下面程序运行时从键盘上输入15,20,运行结果为_。#include stdio.hint main( ) int a,b,t;t = 0;scanf(%d,%d,&a,&b);if (a>b) t = a ;a = b ;b = t ;printf(b=%d,b) ;return 0;你的答案: b=0 求两个正整数x和y的最大公约数,请填空。#include <math.h>#include <stdio.h>int main( ) int x,y,t,i;scanf(%d,%d,&x,&y);if(x > y) t = x; x = y; y = t;for
8、( _ ) if( x%i=0 & y%i=0 )break;printf(Maximal Common Divisor is : %dn,i);return 0;你的答案: i=x;i>=1;i- 参考答案: 2、 计算1到100之间的奇数之和及偶数之和。请填空。#includestdio.hint main( ) int a,b,c,i;a=0, c=0; /* 变量赋初值 */for(i=0;i<=100;i+=2) a+=i; /* 变量a存放偶数的和 */_ ; c+=b; /* 变量c存放奇数的和 */printf(Sum of Evens is %dn,a);printf
9、(Sum of Odds is %dn,c-101); return 0;你的答案: b=i+1 参考答案: 3、 下面程序的功能是:计算正整数num的各位上的数字之和。例如,若输入:252,则输出应该是:9;若输入:202,则输出应该是:4。请将程序补充完整。#include <stdio.h>int main( ) int num,k;k=0;printf(Please enter a number:) ;scanf(%d,&num) ;do k=_ ;num/=10; while(num) ;printf(n%dn,k) ;return 0;你的答案: k+num%10 参考答案
10、: 4、 求两个正整数m,n之间所有既不能被3整除也不能被7整除的整数之和。请填空。#include <math.h>#include <stdio.h>int main( ) int m,n,i,t;long int s=0;scanf(%d,%d,&m,&n);if( m>n ) t=m; m=n; n=t;for ( _ )if ( i%3 != 0 & i%7 != 0 )s += i;printf(Sum is : %ldn,s );return 0;你的答案: i=m;i<=n;i+ 下面程序的功能是:输出以下图形: ->在第11列 请把程序补充完整。#
11、includestdio.hmain( ) int i,j,k;for(i=0;i<=2;i+) for( j=0; j<10-i ;j+ ) printf( );for( k=0; _ ;k+ ) printf(*);printf(n); 你的答案: k<=2*i 参考答案: 2、 下面函数的功能是求出100300间的素数和,请把程序补充完整。#includestdio.hmain( ) int i, j, flag, sum=0;for( i=100; i<=300; i+ ) flag=0;for( j=2; j<=i-1; j+ )if( i%j=0 ) flag=
12、1;break; if( _ ) sum+=i;printf(The sum is %dn,sum);你的答案: flag=0 参考答案: 3、 下面函数的功能是输出九九乘法表,请把程序补充完整。#includestdio.hmain( ) int i,j; for( i=1; i<=9; i+ ) for( j=1; _; j+ )printf(%d*%d=%-4d, i,j,i*j);printf(n); 你的答案: j<=i 参考答案: 4、 根据公式:e= 1+1/1!+1/2!+1/3!+.+1/n!+.,计算e的近似值,请把程序补充完整。#includestdio.hmai
13、n( ) long int n,j;float sum=1,t;for(n=1; n<=20; n+) t=1.0;for(j=1; j<=n; j+)t=t*j;_;printf(%10.2fn,sum);你的答案: sum=sum+1/t 定义一个数组名为ftop且有5个int类型元素的一维数组,同时给每个元素赋初值为0,请写出数组的定义语句_ 你的答案: intftop5=0,0,0,0,0 参考答案: 2、 下面程序的功能是:为一维数组a中的元素赋值,并按照逆序输出。请在程序中的横线上填入正确的内容。#include stdio.hint main( ) int i,a10;
14、/* 定义循环变量i和一维数组a */for(i=0;i<=9;i+)scanf(%d,&ai); for(_ ;i>=0;i-)printf(%d ,ai); /* 按照逆序输出 */printf(n);return 0;你的答案: i=9 参考答案: 3、 下面程序的功能是:输出一维数组a中的最小值及其下标。请在程序中的横线上填入正确的内容。#includestdio.hint main( ) int i,p=0,a10; /* 定义a为数组名,p为下标名 */for(i=0; i<10; i+)scanf(%d,&ai);for(i=1; i<10; i+)if (ai&
15、ltap) _ ;printf(%d,%d,ap,p); /* 输出一维数组a中的最小值及其下标 */return 0; 你的答案: p=i 参考答案: 4、 下面程序的功能是:求一维数组中下标为偶数的元素之和并输出。请在程序中的横线上填入正确的内容。#include stdio.hint main int i,sum=0;int a =2,3,4,5,6,7,8,9;for(i=0; i<8;_)sum+=ai; printf(sum=%dn,sum); return 0;你的答案: i=i+2 参考答案: 定义一个5行5列的二维数组a,使主对角线(含主对角线)下的所有元素初始化为1,在
16、划线处填空。int i,j,a55;for(i=0; i<5; i+)for(j=0; j<5; j+)if( _ ) aij=1;你的答案: i>=j 参考答案: 2、 求一个44矩阵的主对角线元素之和#include stdio.hint main int a44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,sum=0;for(i=0; i<4; i+)_;printf(“sum=%dn”,sum); return 0; 你的答案: sum=sum+aii 参考答案: 3、 求二维数组a中的最大元素及其下标,填空并运行程序。#include
17、 stdio.hint mainint a44=1,2,3,4,3,4,5,6,5,6,7,8,7,8,9,10;int i,j,max,r,c; max=a00;for(i=0; i<4; i+)for(j=0; j<4; j+)if( max<aij ) _ ;r=i;c=j;printf(“max=%d,r=%d,c=%d%n”,max,r,c);return 0;你的答案: max=aij 参考答案: 4、 统计3个学生,每个学生4门课程的考试成绩,要求输出每个学生的总成绩,每个学生的平均成绩,3个学生的总平均成绩,填空并运行程序。#include stdio.hint m
18、ain int stu34,i,j,t3;float a3,sum=0;for(i=0; i<3; i+)for(j=0; j<4; j+) scanf(%d,&stuij);for(i=0; i<3; i+) ti=0;for(j=0; j<4; j+) sum+=stuij;ti+=stuij;printf(%-6d,ti);_ ;printf(%-6.2fn,ai);printf(average = %.2fn,sum/12.0);return 0;你的答案: ai=ti/4.0 1. 下面程序运行的结果是:_#include stdio.hint mainchar a1
19、1= I, ,a, m, , a, , b, o, y;printf(%sn,a); return 0;你的答案: Iamaboy 参考答案: 2、 2下面的程序用来实现将两个字符串连接起来。请将源程序补充完整,#include stdio.hint mainchar str1100,str2100;int i=0,j=0;printf(please input the string1:);gets(str1);printf(please input the string2:);gets(str2);for(i=0;str1i!=0;i+);for(j=0;str2j!=0;j+)str1i=
20、str2j;i+;_;printf(the catenated string is %s,str1);return 0;你的答案: str1i=0 参考答案: 3、 3下面程序的功能是用strcat函数实现将字符串2连接到字符串1的后面并输出,请补充完整。#include stdio.h#include string.hint mainchar str180=This Is a ,str280=c Program;printf(String1 is: %sn,str1);printf(String2 is: %sn,str2);_;printf(Result is: %sn,str1);ret
21、urn 0;你的答案: strcat(str1,str2) 参考答案: 4、 4下面的程序用来实现将一个字符串中的所有大写字母转换为小写字母并输出。请将源程序补充完整。例如,当字符串为This Is a c Program输出:this is a c program#include stdio.hint mainchar str80=This Is a c Program;int i;printf(String is: %sn,str);for(i=0;stri!=0;i+)if(stri>=A & stri<=Z)_;printf(Result is: %sn,str);return
22、 0; 你的答案: stri=stri+32 参考答案: 下面程序的功能是:判别一个整数数组中各元素的值,若大于0 则输出该值,若小于或等于0则输出0值。请在程序中的横线上填入适当的内容,将程序补充完整。#include stdio.hvoid nzp(int v) int i=0;if(v>0) printf(%d ,v);else printf(%d ,i);int main int a5,i;printf(input 5 numbersn);for(i=0;i<5;i+) scanf(%d,&ai);_ return 0; 你的答案: nzp(ai); 参考答案: 2、 一维数组
23、a中的元素为:1,4,2,7,3,12,5,34,5,9。下面程序的功能是:求一维数组a中的最大元素及其下标。程序的输出应为:The max is: 34,position is: 7 。请在程序中的横线上填入适当的内容,将程序补充完整。#include <stdio.h>int max;int fun( int arr ,int n ) int pos,i;max = arr0;pos = 0;for ( i=1; i<n; i+)if (max < arri) max = arri;pos=i; return(pos);int main int a10=1,4,2,7,3,
24、12,5,34,5,9,n;n=_;printf(The max is: %d ,position is: %dn, max , n);return 0;你的答案: fun(a,10) 参考答案: 3、 下面程序的功能是:将字符串1的第1,3,5,7,9,.位置的字符复制到字符串2并输出。例如,当字符串1为This Is a c Program,则字符串2为Ti sacPorm请在程序中的横线上填入适当的内容,将程序补充完整。#include <stdio.h>#include <string.h>void fun(char str1 ,char str2 ) int i,j;
25、j=0;for(i=0;i<strlen(str1);i+=2) str2j=str1i;j+;str2j=0; int main char str180=This Is a c Program,str280;printf(String is: %sn,str1);_printf(Result is: %sn,str2);return 0;你的答案: fun(str1,str2) 参考答案: 4、 请写出下面的程序的运行结果。#include stdio.hint d=1;fun(int p) int d=5; d+=p+; printf(%d ,d);int main int a=3; fun(a); int d=16; d+=a+;printf(%d ,d); printf(%d ,d); return 0;程序的运行结果是:_ 你的答案: 8191 参考答案: