printf(\ return 0; }
作业五---求公式近似值
2. 【问题描述】
已知ex的近似值可由下面公式计算得出:
ex=1 + x/1! + x2/2! + x3/3! + ...... + xn/n!
给定x和n,利用上述公式求得ex的近似值。
【输入形式】
从控制台输入小数x,和整数n(n>=1),用空格隔开。
【输出形式】
向控制台输出求得的ex 的近似值(小数点后保留6位有效数据)。
【样例输入】
7 27
【样例输出】
【样例说明】
输入的x为7,n的值为27,即:求e7的近似值,利用上述公式求得的近似值为:。
【评分标准】
该题要求输出ex的近似值,共有5个测试点。上传C语言文件名为。
#include<> int main() {
double x,s,y; int n,i; double t;
scanf(\ t=1; s=1; y=1;
for(i=1;i<=n;i++) {
t*=i; y*=x; s+=y/t; }
printf(\ return 0; } 作业六: 选择题
# 题目
1. 若有变量定义int a; double b; 要输入数据存放在a和b中,则下面正确的输入数据的语句为:C
A. scanf(\ B. scanf(\ C. scanf(\ D. scanf(\
2. 在C语言程序中,以下正确的描述是 (A) 函数的定义可以嵌套,但函数的调用不可以嵌套B
(B) 函数的定义不可以嵌套,但函数的调用可以嵌套
(C) 函数的定义和函数的调用均不可以嵌套
(D) 函数的定义和函数的调用均可以嵌套 选择题 3. 以下正确的函数声明形式是 A # 题目 (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x, y); 实验六---字符串中字符排序 1. 【问题描述】编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。
【输入形式】用户在第一行输入一个字符串。
【输出形式】程序按照字符(ASCII)顺序从小到大排序字符串,并删除重复的字符进行输出。
【样例输入】badacgegfacb 【样例输出】abcdefg
【样例说明】用户输入字符串badacgegfacb,程序对其进行按从小到大(ASCII)顺序排序,并删除重复的字符,最后输出为abcdefg
【评分标准】结果完全正确得20分,每个测试点4分。提交源程序名为
#include <> int main() {
char str[500]={0},hash[256]={0}; int i;
scanf(\
for(i=0;str[i]!='\\0';i++) hash[str[i]]=1; for(i=0;i!=256;i++) if(hash[i]==1) printf(\ printf(\ scanf(\ }
作业七:
1. 若有说明: char *language[] = {\\则以下不正确的叙述是 D (A) language+2 表示字符串\的首地址 (B) *language[2]的值是字母P (C) language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针 (D) language包含5个相同长度的数组
2. 设有说明 int (* ptr) [M]; 其中ptr是 C
(A) M个指向整型变量的指针
(B) 指向M个整型变量的函数指针
(C) 一个指向具有M个整型元素的一维数组的指针
(D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量
3. 下面能正确进行字符串赋值,并且能确保字符串以’\\0’结尾的操作是 C (A) char s[5] = {\ (B) char s[5] = {’A’, ’B’, ’C’, ’D’, ’E’}; (C) char *s; s = \ (D) char *s; scanf(\
4. 若有说明: char *language[] = {\\则表达式 *language[1] > *language[3] 比较的是 C (A) 字符F和字符P
(B) 字符串BASIC和字符串JAVA (C) 字符B和字符J
(D) 字符串FORTRAN和字符串PASCAL
5. 若有以下定义,则数值不为3的表达式是
int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1;C
(A) x[3]
(B) p1 = x + 3, *p1++ (C) p1 = x + 2, *(p1++) (D) p1 = x + 2, *++p1
6. 以下正确的说明语句是A (A) int *b[] = {1, 3, 5, 7, 9};
(B) int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]}; (C) int a[] = {1, 3, 5, 7, 9}; int *num[5] = {a[0], a[1], a[2], a[3], a[4]};
(D) int a[3][4], (*num)[4]; num[1] = &a[1][3];
当前编程题:实验七---整数的N进制字符串表示
1. 【问题描述】编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中. 编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为’-’。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是’0’和’1’;当b=16时,输出字符串中可能含有字符为’0’-’9’,’a’-’f’(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为\。 【输入形式】控制台输入整数n和b,其中n可以为负数。n和b以空格分隔. 【输出形式】控制台输出转化后的字符串s. 【样例输入】5 2 【样例输出】101
【样例说明】5的二进制就是101
【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:
#include<> #include <>
void itob(int n,char s[],int b); void itob(int n,char s[],int b) {
int tmp; int i = 0; tmp=n;
while (tmp) {
if((tmp%b)>=10)
s[i]='a'+tmp%b-10; else
s[i]='0'+tmp%b; tmp=tmp/b; i++; }
s[i]='\\0'; }
int main() {
int n, b, i; char s[100];
scanf(\ itob(n,s,b);
for(i = strlen(s) - 1;i>=0;i--) printf(\ return 0; }
第八次 填空题 # 题目
1. 写出程序的运行结果 1,2,3,3,5,4#include <> main() {
int a[] = {1,2,3,4,5,6}; int *p; p=a;
printf(\ printf(\ printf(\ printf(\
p+=3;
printf(\ }
2. 以下程序的运行结果是 10 x #include<> struct n { int x; char c; };
void func(struct n b) {
= 20; = ’y’; }
main() {
struct n a = {10, ’x’}; func(a);
printf (\ }
3. 以下程序的运行结果是6,9
#include<> void main() {
int i;
for (i=4;i<=10;i++) {
if (i%3==0) continue; printf(\ } }
选择题
# 题目
1. 若有以下程序段
struct dent {
int n; int *m; };
int a=1, b=2, c=3; struct dent s[3]={{101,&a},{102,&b},{103,&c}}; strcut dent *p =s;
则以下表达式值为2的是 A A.(p++)->m B.*(p++)->m C.(*p).m D.*(++p)->m
2. 下面程序是求数组中的最小的元素,请选择填空。 D
findmin(int *s, int t, int *k) {
int p;
for(p = 0;p if(s[p] main() { int a[10],i,*k=&i; for(i=0;i<10;i++) { scanf(\ } i=0; findmin(a, 10,k); printf(\ } =p B.*k=p-s =p-s D.*k=p