首页编程c语言程序设计例题,大一c语言编程题库100题

c语言程序设计例题,大一c语言编程题库100题

编程之家2026-05-21648次浏览

大家好,c语言程序设计例题相信很多的网友都不是很明白,包括大一c语言编程题库100题也是一样,不过没有关系,接下来就来为大家分享关于c语言程序设计例题和大一c语言编程题库100题的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

c语言程序设计例题,大一c语言编程题库100题

C语言编程小代码!一些C语言程序设计例题(二)

以下是针对用户提出的C语言程序设计例题的代码实现及简要说明:

1.字符串a下标值为偶数的元素由小到大排序,其他元素不变#include<stdio.h>#include<string.h>void sortEvenIndices(char*str){ int len= strlen(str); for(int i= 0; i< len; i+= 2){ for(int j= i+ 2; j< len; j+= 2){ if(str[i]> str[j]){ char temp= str[i]; str[i]= str[j]; str[j]= temp;}}}}int main(){ char a[]="abcdefgh"; printf("Original string:%sn", a); sortEvenIndices(a); printf("Sorted string:%sn", a); return 0;}说明:该程序通过双重循环对字符串中偶数下标的字符进行排序,保持奇数下标的字符不变。

2.十进制正整数转换为二进制#include<stdio.h>void decimalToBinary(int n){ if(n== 0){ printf("0"); return;} int binary[32]; int i= 0; while(n> 0){ binary[i++]= n% 2; n/= 2;} for(int j= i- 1; j>= 0; j--){ printf("%d", binary[j]);} printf("n");}int main(){ int num; printf("Enter a decimal number:"); scanf("%d",&num); printf("Binary representation:"); decimalToBinary(num); return 0;}说明:该程序通过不断除以2并取余数的方式将十进制数转换为二进制,然后逆序输出余数。

3.从低位开始取出整型变量n偶数位上的数依次放在整型变量s中#include<stdio.h>int extractEvenDigits(int n){ int s= 0; int position= 1; while(n> 0){ int digit= n% 10; if(digit% 2== 0){ s= s+ digit* position; position*= 10;} n/= 10;} return s;}int main(){ int n; printf("Enter an integer:"); scanf("%d",&n); int s= extractEvenDigits(n); printf("Result:%dn", s); return 0;}说明:该程序从低位开始检查每一位数字,如果是偶数则将其添加到结果变量s中,保持原有顺序。

4.输入并保存5名职工的信息,计算并输出平均工资,再按照工资从高到低的顺序输出#include<stdio.h>#include<string.h>typedef struct{ char id[10]; char name[9]; double salary;} Employee;void sortEmployees(Employee emp[], int n){ for(int i= 0; i< n- 1; i++){ for(int j= 0; j< n- i- 1; j++){ if(emp[j].salary< emp[j+ 1].salary){ Employee temp= emp[j]; emp[j]= emp[j+ 1]; emp[j+ 1]= temp;}}}}int main(){ Employee employees[5]; double total= 0; for(int i= 0; i< 5; i++){ printf("Enter details for employee%d:n", i+ 1); printf("ID:"); scanf("%s", employees[i].id); printf("Name:"); scanf("%s", employees[i].name); printf("Salary:"); scanf("%lf",&employees[i].salary); total+= employees[i].salary;} double average= total/ 5; printf("Average salary:%.1fn", average); sortEmployees(employees, 5); printf("Employees sorted by salary(descending):n"); for(int i= 0; i< 5; i++){ printf("ID:%s, Name:%s, Salary:%.1fn", employees[i].id, employees[i].name, employees[i].salary);} return 0;}说明:该程序使用结构体存储职工信息,计算平均工资后使用冒泡排序按工资降序排列职工信息。

5.求x的n次方(递归实现)#include<stdio.h>double power(double x, int n){ if(n== 0) return 1; if(n> 0) return x* power(x, n- 1); return 1/ power(x,-n);}int main(){ double x; int n; printf("Enter base and exponent:"); scanf("%lf%d",&x,&n); printf("Result:%.2fn", power(x, n)); return 0;}说明:该程序使用递归方式计算x的n次方,处理了正负指数的情况。

c语言程序设计例题,大一c语言编程题库100题

6.任意整数转换为千分位分隔的字符形式#include<stdio.h>#include<string.h>void formatWithCommas(int num){ char str[20]; sprintf(str,"%d", num); int len= strlen(str); int commaPos= len% 3; if(commaPos== 0&& len> 2) commaPos= 3; for(int i= 0; i< len; i++){ printf("%c", str[i]); if(--commaPos== 0&& i!= len- 1){ printf(","); commaPos= 3;}} printf("n");}int main(){ int number; printf("Enter an integer:"); scanf("%d",&number); printf("Formatted number:"); formatWithCommas(number); return 0;}说明:该程序将整数转换为字符串后,从右向左每三位插入一个逗号作为千分位分隔符。

以上代码均经过基本测试,可直接编译运行。如需进一步优化或有任何问题,请随时提出。

三级C语言程序设计的例题参考

已知数据文件IN.DAT存有200个四位数,并以调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT中。

注意:部分程序已给出。

程序中已定义数组a[200],b[200];已定义变量:cnt。

请勿改动数据文件IN.DAT中的任何数据及主函数main()、读函数readDat和写函数writeDat()的内容。

c语言程序设计例题,大一c语言编程题库100题

(因为此处没有数据文件IN.DAT,所以读者拷贝该程序,编译能通过,但执行不起来)

#include<stdio.h>

#define MAX 200

int a[MAX], b[MAX], cnt= 0;

void jsVal()

{

int m,j,k,gg,ss,bb,qq,data;

for(m=0;m<200;m++)

{qq=a[m]/1000;

bb=a[m]%1000/100;

ss=a[m]%100/10;

gg=a[m]%10;

if(qq%2==0&&bb%2==0&&ss%2==0&&gg%2==0)

{

b[cnt]=a[m];

cnt++;

}

m++;

}

for(j=0;j<cnt-1;j++)

for(k=j+1;k<cnt;k++)

if(b[j]<b[k])

{

data=b[k];

b[k]=b[j];

b[j]=data;

}

}

void readDat()

{

int i;

FILE*fp;

fp= fopen(IN.DAT, r);

for(i=0; i<MAX; i++)

fscanf(fp,%d,,&a[i]);

fclose(fp);

}

void writeDat()

{

FILE*fp;

int i;

fp= fopen(OUT.DAT, w);

fprintf(fp,%d

, cnt);

for(i=0; i<cnt; i++)

fprintf(fp,%d

, b[i]);

fclose(fp);

}

void main()

{

int i;

readDat();

jsVal();

printf(满足条件的数=%d

, cnt);

for(i=0; i<cnt; i++)

printf(%d, b[i]);

printf(

);

writeDat();

}

以上运行的结果是:

满足条件的数=4

6662 4602 2668 2264

正确答案应该如下:

满足条件的数=6

6662 6604 4602 2842 2668 2664

(一般采用评分软件评分)

本题共100分。

可执行文件已生成

输出文件存在

第1行数据应为:6结果不正确;

第2行数据应为:6662结果正确;

第3行数据应为:6604结果不正确;

第4行数据应为:4602结果不正确;

第5行数据应为:2842结果不正确;

第6行数据应为:2668结果不正确;

第7行数据应为:2264结果不正确;

本题共应输出7行数据,1行结果正确,得14分。

如果所编程序编译不成功,或者可执行文件未生成,直接判0分。因此在上机考试成绩中,0分和100分的分布比例比较大。

void jsVal()

{

int bb[4];

int i, j, k, flag;

for(i=0; i<200; i++)

{

bb[0]= a[i]/1000;

bb[1]= a[i]%1000/100;

bb[2]= a[i]%100/10;

bb[3]= a[i]%10;

for(j=0; j<4; j++)

{

if(bb[j]%2== 0)

{

flag= 1;

}

else

{

flag= 0;

break;

}

}

if(flag== 1)

{

b[cnt]= a[i];

cnt++;

}

}

for(i=0; i<cnt-1; i++)

for(j=i+1; j<cnt; j++)

if(b[i]< b[j])

{

k= b[i];

b[i]= b[j];

b[j]= k;

}

}

求这几题C语言程序设计题目的解析

14题首先理解n--和--n的区别此题看不出来

n=6执行n--(6-1=5)后为 n=5再执行--n(5-1)为 4

以此类推得B选项

15题运算b==c若b与c比较相等那么得出为1显然b与c不相等所以是0

16题 x[3][3]表示二维数组数组从0开始行列都是

二维数组表示出来就是三行三列的每行三个如下

012--0行

345--1行

678--2行

执行程序 x=0 x[0][2]=2

执行程序 x=1 x[1][1]=4

执行程序 x=2 x[2][0]=6

好了,文章到此结束,希望可以帮助到大家。

python人工智能编程(python代码自动生成器)编程需要下载什么软件 编程软件哪个好