新]C语言期末复习,经典练习题+知识点总结+模拟考题。三位一体,完胜c语言!!!!{考期必备神器} 下载本文

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