01C语言习题C类

更新时间:2023-10-24 14:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C类 填空题 17题,程序编写题20题

填空题

1. 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是. int b,c; float a;

scanf(\,%d,c=%d\,&a,&b,&c);

5.0,4,c=3

2. 在C语言中,一个short型数据在内存中占2个字节,则short型数据的取值范围为-32768~+32767。

3. 若s是int型变量,且s=6,则下面表达式的值为 1 。

s%2+(s+1)%2 4. 若a是int型变量,则下面表达式的值为 46 。 (a=4*5,a*2),a+6

5. 若x和a均是int型变量,则计算表达式(1)后的x值为 12 ,计算表达

式(2)后的x 值为 4 。 (1) x=(a=4,6*2)

(2) x=a=4,6*2 6. 若a是int型变量,则计算下面表达式后a的值为 2 。 a=25/3%3

7. 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值

为 10 ,n的值 6 。 x+=n++ 8. 若有定义:char c=‘\\010’;则变量c中包含的字符个数为 1 。 9. 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为 1 (x+y)%2+(int)a/(int)b

10. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=

‘a’+‘8’-‘3’的值为 102 。

12. 若有以下定义,则计算表达式y+=y-=m*=y后的y值是 -16 。 int m=5,y=2;

13.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是__4____. *(a+5)的值是___12______.

14.若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是_8____. *(*(a+1)+0))的值是___8_____.

15、以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。

struct node { char data;

struct node * next; }; .

_____a___ creatlist( )

{ struct node * h,* s,* r; char ch;

h=(struct node *)malloc(sizeof(struct node)); r=h;

ch=getchar( );

{ s=(struct node *)malloc(sizeof(struct node)); s->data=____b____; r->next=s; r=s; ch=getchar( ); } r->next=____c_____; return h; } 答案:

(a) struct node * (b) ch (c) NULL

16.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。 请填空。

#include \ main()

{int *a,*b,*c,num,x,y,z; a=&x;b=&y;c=&z;

printf(\输入3个整数:\ scanf(\ printf(\ num=*a;

if(*a>*b)___(1)___; if(num>*c)__(2)____;

printf(\输出最小整数:%d\\n\ } 答案: (1)num=*b; (2)num=*c;

17.下面程序段的运行结果是 char s[80],*sp=\ sp=strcpy(s,sp); s[0]='h';

puts(sp); 答案:hELLO!

程序编写题

1.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得 调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\则

函数把它转换为整数值 -1234。 long fun ( const char *p) ;

2.请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返

回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干

个空格隔开, 一行的开始没有空格。 int fun( const char *s);

3.请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第

1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。

例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。 void fun(const char *w, int m);

4.函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:-1, 10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:-1, 2、4、6、8、10。

void sort_list(List* head) //head中的数据不需要排序

5.函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩 阵是否是\幻方\,若是,函数返回值为1; 不是,函数返回值为0。\幻方\的判定

条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个\幻方\: 4 9 2 3 5 7 8 1 6 #define N 3

int fun(int (*a)[N])

6.根据整型形参m,计算如下公式的值。 1 1 1

t = 1 - ----- - ----- - ?? - ----- 2 3 m

例如,若主函数中输入5,则应输出 -0.283333。 double fun( int m ) ;

7.请编写一个函数,函数的功能是删除字符串中的所有空格。

例如, 主函数中输入\则输出为 \。 void print_mystr(char* str);

8编写函数的功能是将带头结点的单向链表逆置。即若原链表中从 头至尾结点数据域依次为:-1,2、4、6、8、10,逆置后,从头至尾结点数据域依次为: -1,10、8、6、4、2。 (head的数据不用改变) void reverse_list(List* head);

9.请编写函数fun, 函数的功能是: 将放在字符串数组中的M个字符串(每串的长

度不超过N), 按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。

例如, 字符串数组中的M个字符串为 AAAA BBBBBBB CC

则合并后的字符串的内容应是: AAAABBBBBBBCC。 void fun(char a[M][N], char *b) ;

10. 函数fun的功能是: 将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 例如, 字符串中的数据为: AABBCCDDEEFF, 则输出应当是:ABBCDDEFF。 void fun(char *s, char t[])

11.编写函数作用是求出单向链表结点(不包括头结点)数据域中的最大值, 并且作为函数值返回。 int find_max(List* head);

12.编写函数, 函数的功能是: 判断字符串是否为回文?若是, 函数返回1, 主函数中输出: YES, 否则返回0, 主函数中输出NO。回文是指顺读和倒读都一样 的字符串。

Int huiwen(const char* str);

13.fun 函数的功能是:将p所指字符串中每个单词的最后一 个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如, 若输入

\,

则应输出 \。

void fun( char *p ) ;

14.程序通过定义随机学生结构体数组,存储了若干名学生的学号(int)、姓名(char*)和3门课的成绩(int,int,int)。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。

void fun(struct stu[]);

15.函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入:ABCDeFGH, 调用后字符串中的内容为:eABCDFGH。

void fun(char* str);

16.函数fun的功能是:将形参s所指字符串中的所有字母字符顺序 前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。 char* fun(char* str);

17.函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中, 函数返回所求出的素数的个数。 int fun(int lim, int aa[]) ;

18.函数fun的功能是:从s所指字符串中,找出与t所指字符 串相同的子串的个数作为函数值返回。

例如,当s所指字符串中的内容为:\,t所指字符串的内容为: \,则函数返回整数3。

int fun (char *s, char *t)

19.函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字

符形成一个新串放在t所指的数组中。 void fun(char *s, char t[]) ;

20.函数fun的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15 11 2, 则输出结果应当是:330。 int fun(int x1,int x2,int x3);

本文来源:https://www.bwwdw.com/article/3rc2.html

Top