c语言程序上机考核题目及答案1

 

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图纸等内容。


TOP最近更新内容

    园林史名词解释
    长城小学关爱留守儿童工作制度
  • 上一篇:作文指导:如何写好自己的奇思妙想
  • 下一篇:秀洲区职称论文发表-新课改高中体育教学思路方法创新论文选题题