C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试。 函数功能
截取字符串将大写字母转换为小写字母。
将被操作字符串中的指定大写字母后的所有字母截取出来,将截取出来的所有字母转换为小写字母,将此字符串写入原来被操作字符串的地址中。
比如:字符串”WEIWENDATA”在字符’N’之后的的字符串为” DATA”;转换后的字符串”data”。
函数原型
int trans(char *str, char ch);
参数说明
str 为被操作的字符串首地址,字符串的元素全为大写字母;最终将转换好的字符串写入此地址中。
ch 为指定的大写字母,此大写字母在str中只出现一次;
返回值
操作成功,正常返回;
str为空,即str==NULL
#include<stdio.h>
int trans(char *str, char ch){
int i = 0;
int j = 0;
if(str == NULL){
return 1;
}
while(*(str + i) != '\0'){
if(*(str + i) == ch){
break;
}
i++;
}
while(*(str + i + 1) != '\0'){
*(str + j) = *(str + i + 1) + 32;
j++;
i++;
}
*(str + j) = '\0';
}
void main()
{
char a[100] = "DHYOEBG";
} char h = 'Y'; trans(a, h); printf("%s", a);
C语言程序设计复杂程序考核
考核方法
在名为exam2.c的文件中实现一个指定的函数,其要求如后所述。该文件中不应包含main函数。学生自行编写相应的main函数等来进行测试。源代码文件保存在学生账号的根目录下。
函数功能
删除链表中包含指定数据的节点。
该函数的功能为删除链表中指定数据的节点,链表的首节点地址以及所指定的数据以函数形式参数的形式传入。
函数原型
int delete_list(data * op_list, int value);
其中data数据类型定义如下:
//Link list struct
typedef struct data{
int value;
struct data *next;
}data;
结构体中的value成员为所存储的数据,next存储链表下一个节点的地址,如果不存在下一个节点,next值为NULL。
考生应当将上述的data定义的代码复制到源代码文件中。
参数说明
op_list为链表首节点的地址;
value 为指定的数据。考生需要找到结构体成员value值为指定数据的节点,并将之删除。 返回值
-1 不存在指定数据;
0 删除成功,正常返回。
#include<stdio.h>
#include<malloc.h>
typedef struct data{
int val;
struct data *next;
}data;
int delete_list(data * op_list, int dir){
struct data *head, *newP;
head = op_list;
if(head->next == NULL){
return 2;
}
while(head->next != NULL){
newP = head->next;
if(newP->val == dir){
head->next = newP->next;
}
head = head->next;
}
return 0;
}
struct data * creatList(){
int len = 0;
int id = 0;
int i = 0;
struct data * head = (struct data *)malloc(sizeof(struct data)); struct data * Tail = head;
printf("input len");
scanf("%d", &len);
for(i = 0; i < len; i++){
struct data * NewS = (struct data *)malloc(sizeof(struct data)); printf("input id");
scanf("%d", &id);
NewS->val = id;
Tail->next = NewS;
NewS->next = NULL;
Tail = NewS;
}
return head;
}
void showList(struct data * head){
struct data * NewP;
while(1){
if(head->next == NULL){
return;
}
NewP = head->next;
printf("%d", NewP->val);
head = NewP;
}
}
void main(){
struct data * head;
head = creatList();
showList(head);
delete_list(head, 3);
showList(head);
}
C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试。 函数功能
字符串ASCII排序。
对传入的字符串依据ASCII从小到大的规则进行排序,排序好的数据写入指定地址中。 函数原型
int sort (char *str, char *sort_str);
参数说明
str是传入字符串的起始地址。str中的数据个数小于4096个。
sort_str是排序后字符串的存放地址。
返回值
操作成功;
指针str为空,此时sort_str不写入值;
str中的数据不小于4096个,此时sort_str不写入值。
#include<stdio.h>
int sort (char *str, char *sort_str){
int i = 0;
int len = 0;
int n = 0;
int m = 0;
char ch;
while(*(str + i) != '\0'){
*(sort_str + i) = *(str + i);
len ++;
i++;
}
sort_str[len] = '\0';
for(n = 0; n < len; n++){
for(m = n + 1; m < len; m++){
if(*(sort_str + n) > *(sort_str + m)){
ch = *(sort_str + n);
*(sort_str + n) = *(sort_str + m);
*(sort_str + m) = ch;
}
}
}
return 0;
}
void main()
{
char a[100] = "hello";
char * p = a;
char b[100];
char * q = b;
sort(p,q);
printf("%s", q);
}
C语言程序设计复杂程序考核
考核方法
在学生根目录下新建一个exam2.c的文件,将符合此后描述的功能的代码写入其中。源代码文件中不应该包含main函数,考生应该自己建立main函数来调试代码。源代码文件保存在学生账号的根目录下。
函数功能
将字符串中的数字字符(即’0’~’9’)出现的次数写入到指定的地址中。
考生需要统计一字符串中数字字符出现的次数,然后将次数写入到一个指定的地址中,被操作的字符粗和被写入的地址以函数形式参数传入。
函数原型
int function(char* str, int* stat);
参数说明
str 是传入的被操作字符串。字符串长度不超过4096。
stat 是被写入的地址。就是将str数组中的数字字符出现的次数写到stat中。
返回值及意义
操作成功;
str为空, 此时stat写入的值应为0。
字符串长度超过限制,此时stat写入的值应为0。
#include<stdio.h>
#include<string.h>
int function(char* str, int* stat){
int i = 0;
char ch = 0;
if(str == NULL){
*stat = 0;
return 1;
}
if(strlen(str) >= 4096){
*stat = 0;
return 2;
}
while(*(str + i) != '\0'){
ch = *(str + i);
if(ch >= '0' && ch <= '9'){
*stat = *stat + 1;
}
i++;
}
return 0;
}
void main()
{
char a[100] = "32yidsf1";
char * p = a;
int n = 0;
int * q = &n;
function(p, q);
printf("%d", *q);
}
C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试。 函数功能
大小写转化,统计0的总个数。
函数通过参数传入一个字符串(全为大写字母)的起始地址,通过对这个地址的操作把该字符串中的大写字母转换为小写字母,并统计每个小写字母对应ASCLL码转换为二进制后0出现的次数之和。
函数原型
int caculate_student(char *data_buf, int *count);
参数说明
data_buf是指向字符数组地址的指针,该内存包含一串大写字母。字符串长度不超过4096。 count是被写入的参数。就是将所有小写字母对应ASCLL码转换为二进制后0出现的总次数。 返回值
操作成功;
data_buf为空,即data_buf == NULL,此时count写入值为-1,即*count = -1。
#include<stdio.h>
int caculate_student(char *data_buf, int *count){
int i = 0;
int j = 0;
int num = 0;
if(data_buf == NULL){
*count = -1;
return 1;
}
while(*(data_buf + i) != '\0'){
*(data_buf + i) = *(data_buf + i) + 32;
printf("%c", *(data_buf + i));
i++;
}
for(j = 0; j < i; j++){
num = *(data_buf + j);
while(num / 2 != 0){
if(num % 2 == 0){
*count = *count + 1;
}
num = num / 2;
}
}
return 0;
}
void main()
{
int i = 0;
char a[100] = "HELLO";
char * p = a;
int * q = &i;
caculate_student(p, q);
printf("%s %d", p, *q);
}
C语言程序设计复杂程序考核
考核方法
在名为exam2.c的文件中实现一个指定的函数,其要求如后所述。该文件中不应包含main函数。源代码文件保存在学生账号的根目录下。若要调试则需重新新建main函数进行测试,但最后只保留指定函数。
函数功能
找出字符串中ASCII最大的字符,将之写入指定的地址。
函数原型
int max(char *data, char *max);
参数说明
Char *data 是传入的字符串。data元素个数小于1024个;
Char *max 是被写入的地址,即是计算data中的最大值并将其写入max中; 返回值
操作成功;
指针data为空,此时max写入值为’\0’;
data中的数据不小于1024个,此时max写入的值为’\0’。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include"string.h"
int max(char *data, char *max){
int i = 0;
int temp = 0;
if(strlen(data) >= 1024){
*max = '\0';
return 2;
}
if(data == NULL){
*max = '\0';
return 1;
}
*max = *data;
while(*(data + i) != '\0'){
if(*(data + i) > *max){
*max = *(data + i);
}
i++;
}
return 0;
}
void main()
{
char a[100] = "hezllo";
char *p = a;
int i = 0;
char * q;
char m;
q = &m;
max(p, q);
printf("%c", *q);
}
C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试。 函数功能
统计一字符串中另一字符串出现的次数。
计算一个指定的字符串在另一个字符串中出现的次数,并将出现的次数写入指定地址中。指定的字符串和被操作的字符串以函数形式参数的形式传入。比如字符串”weisweisdfwei”出现字符串”wei”的次数为3次。
函数原型
int count(char *str, char *sub_str, int *fre);
参数说明
str 为被操作的字符串,此字符串皆为可打印字符,长度小于4096;
sub_str 为指定的字符串,此字符串皆为可打印字符,长度比str小;
fre 为被写入的地址。即是统计字符串str中sub_str出现的次数,并将次数写入fre中。 返回值
操作成功;
指针str为空,此时fre写入值为-1;
字符串str长度不小于4096个,此时fre写入值为-1。
#include<stdio.h>
#include<string.h>
int count(char *str, char *sub_str, int *fre){
int i = 0;
int j = 0;
int num = 0;
int len = strlen(sub_str);
if(str == NULL){
*fre = -1;
return 1;
}
if(strlen(str) >= 4096){
*fre = -1;
return 2;
}
while(*(str + i) != '\0'){
if(*(str + i) == *sub_str){
if(!strncmp(str + i, sub_str, len)){
*fre = *fre + 1;
i = i + len;
}
}else{
i++;
}
}
return 0;
}
void main()
{
char a[100] = "weilweihehe";
char b[100] = "wei";
int i = 0;
int * p = &i;
count(a, b, p);
printf("%d", *p);
}
C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试;提交时,把main函数屏蔽或删除即可。
函数功能
计算数组中所有元素的平均值,将平均值写入指定的地址中。
函数原型
int caculation(int *data, float *average, int number);
参数说明
data 是传入的数组。data中的元素个数小于1024个。
average 是被写入的地址。即是计算data数组中所有元素de的平均值,将平均值写入average中,data数组中的元素应不变。
number data数组的元素个数。
返回值
操作成功;
指针data为空,此时average写入值为0;
data中的数据不小于1024个,此时average写入的值为0。
#include<stdio.h>
int caculation(int *data, float *average, int number){
int i = 0;
double add = 0;
if(data == NULL){
*average = 0;
return 1;
}
if(number >= 1024){
*average = 0;
return 2;
}
for(i = 0; i < number; i++){
add = (add + *(data + i));
}
*average = (float)(add/number);
return 0;
}
void main(){
int a[100] = {2, 4, 6, 2, 9};
int *q = a;
float f = 1;
float * p = &f;
caculation(q, p, 5);
printf("%f", *p);
}
C语言程序设计复杂程序考核
考核方法
在名为exam2.c的文件中实现一个指定的函数,其要求如后所述。该文件中不应包含main函数。学生应自行编写相应的main函数等来进行测试。源代码文件保存在学生账号的根目录下。
函数功能
对传入的数组进行从小到大排序,排序好的数据写入指定地址中。
函数原型
int sort (int *data, int *sort_data, int number);
参数说明
data 是传入的数据。data中的数据个数小于1024个。
sort_data是被写入的地址。即是将data数组中的数据排序好后,写入sort_data数组中,data数组的数据应不变。
number 数组data包含的数据个数。
返回值
操作成功;
指针data为空,此此时sort_data不写入值;
data中的数据不小于1024个,此时sort_data不写入。
#include<stdio.h>
int sort (int *data, int *sort_data, int number){
int i = 0;
int j = 0;
int temp = 0;
if(data == NULL){
return 1;
}
if(number >= 1024){
return 2;
}
for(i = 0; i < number; i++){
*(sort_data + i) = *(data + i) ;
}
printf("%d\n", *data);
for(i = 0; i < number; i++){
for(j = i + 1; j < number; j++){
if(*(sort_data + i) < *(sort_data + j)){
temp = *(sort_data + i);
*(sort_data + i) = *(sort_data + j);
*(sort_data + j) = temp;
}
}
}
return 0;
}
void main(){
int a[100] = {4 ,1, 6, 9, 2};
int * p = a;
int b[100];
int * q = b;
int i = 0;
sort (p, q, 5);
for(i = 0; i < 5 ;i++){
printf("%d\n", *(q + i));
}
}
C语言程序设计复杂程序考核
考核方法
在名为exam2.c的文件中实现一个指定的函数,其要求如后所述。该文件中不应包含main函数。学生应自行编写相应的main函数等来进行测试。源代码文件保存在学生账号的根目录下。
函数功能
用矩形法求定积分,其中a、b为函数输入参数,[a,b]区间所分的段数n也是传入的参数。将结果写入指定的地址。
函数原型
int f(int i, int b, int n, float *result);
参数说明
b 为积分上限;
i 为积分下限, i小于或等于b;
n 为[i,b]区间所要分的段数,即使将[i,b]区间分为n。
result 为被写入的地址。即是将区间[i,b]分为n段,用矩形法求出定积分的值,将结果写入result中。
返回值
操作成功;
i>b,此时result写入值为-1。
#include <stdio.h>
int f(int i, int b, int n, float *result){
double num = 0;
double add = 0;
float f;
int j = 0;
double len = 0;
len = (b - i)/((double)n);
if(i > b){
return -1;
}
for(j = 0; j <= n; j++){
num = ((i + len * j) * (i + len * j) + 3) * len;
add = add + num;
}
f = (float)add;
return 0;
}
void main()
{
int i = 0;
int b = 0;
int n = 100;
} float h = 1.1f; float * m = &h; f(i, b, n, m);
C语言程序设计复杂程序考核
考核方法
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。该文件中不包含main函数。调试时,学生自行编写相应的main函数等来进行测试。 函数功能
大小写转化,统计1的总个数。
函数通过参数传入一个字符串的起始地址,通过对这个地址的操作把该字符串中的小写字母转换为大写字母,大写字母转换为小写字母,并统计转换之后每个字母对应ASCII码转换为二进制后1出现的总次数。
函数原型
int caculate_student(char *data_buf, int *count);
参数说明
data_buf是指向字符数组地址的指针,该内存包含一串字母。字符串长度不超过4096。 count是被写入的参数。就是将所有转换之后字母对应ASCII码转换为二进制后1出现的总次数。
返回值
操作成功;
data_buf为空,即data_buf == NULL,此时count写入值为-1,即*count = -1。 #include "stdio.h"
int caculate_student(char *data_buf, int *count){
int i = 0;
int num = 0;
int mark = 0;
int h = 0;
if(data_buf == NULL){
*data_buf = -1;
*count = -1;
return 1;
}
while(*(data_buf + i) != '\0' ){
if(*(data_buf + i) >= 97 && *(data_buf + i) <= 122){
*(data_buf + i) = (char)(*(data_buf + i) - 32);
}else if(*(data_buf + i) >= 65 && *(data_buf + i) <= 90){
*(data_buf + i) = (char)(*(data_buf + i) + 32);
}
h = (int)(*(data_buf + i));
while(h != 0){
if( h % 2 == 1){
num++;
}
h = h/2 ; }
i++;
}
*count = num;
return 0;
}
void main(){
char a[100] = "aa"; char * p = a; int i = 0;
int * q = &i;
caculate_student(p, q); printf("\t%d", *q); }
www.99jianzhu.com/包含内容:建筑图纸、PDF/word/ppt 流程,表格,案例,最新,免费下载,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。