C语言基础程序题及答案(适合学完C基础的人练练手)
生活随笔
收集整理的這篇文章主要介紹了
C语言基础程序题及答案(适合学完C基础的人练练手)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:C語言最早是由丹尼斯.里奇(Dennis Ritchie)為了在PDP-11電腦上運行的Unix系統所設計出來的編程語言,第一次發展在1969年到1973年之間。C源于BCPL語言,后者由馬丁.理察德(Martin Richards)于1967年左右設計實現的。
1.用C語言簡單的輸出一個九九乘法表(注意排序整齊)。
#include <stdio.h>int main(void) {int i,j;printf("乘法表:\n");for ( i = 1; i <= 9; i++){for ( j = 1; j <= i; j++){if (i<=4 && j==3){printf("%5d*%d=%d",j,i,i*j);}else{printf("%4d*%d=%d",j,i,i*j); }}printf("\n");}return 0; }?結果輸出:
2.用C語言實現一個用戶輸入一個大寫字母,然后以這個大寫字母生成金字塔。
#include <stdio.h>int main(void) {char i,j,z,k;int h,q;printf("請輸入一個大寫字母:");scanf("%c",&k);if ('A'<=k && k<='Z'){q=k-65;for (z = 'A'; z <= k; z++){for ( h=0; h < q; h++){printf(" ");}for ( i = 'A'; i < z; i++){printf("%c ",i);}for ( j = z; j >='A'; j--){printf("%c ",j);} q--;printf("\n");} }return 0; }?結果輸出:
3.已知數組nums[6]={1,9,4,58,12,23},定義一個指針函數int* max(int* p,int len);返回一個最大值的地址。
#include <stdio.h>//聲明 int* max(int* p, int len);int main(void) {//定義局部變量int nums[6]={1,9,4,58,12,23}, i,*k;//調用max函數,并把返回的地址給指針k;k=max(nums, 6);//打印printf("最大值為:%d",*k);return 0; }//返回最大值的地址 int* max(int* p, int len) {//定義局部變量int* q,i,k=0;for(i=0; i<len-1; i++){if (*(p+k) < *(p+i+1)){k=i+1;}}//把最大值的地址給了指針qq=p+k;//返回指針qreturn q; }? 結果輸出:
最大值為:584.有一個數組nums[ ]={2,7,11,15},還有一個變量target=13,寫一個函數實現返回數組中兩個數相加等于target的兩個下標。
#include<stdio.h> #include<string.h>int* twoSum(int* nums, int numsSize, int target, int* returnSize);int main(void) {int nums[]={2,7,11,15},target=13,returnSize[2],numsSize=0;numsSize=sizeof(nums)/sizeof(int);twoSum(nums,numsSize,target,returnSize);printf("%d\n",returnSize[0]);printf("%d\n",returnSize[1]);return 0; }int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int i,j;for(i=0;i<numsSize-1;i++){for(j=i+1;j<numsSize;j++){if(nums[i]+nums[j]==target){returnSize[0]=i;returnSize[1]=j;}}} }? 結果輸出:
0 25.編寫一個去除重復字符的函數,例如:用戶輸入:weerrt? 輸出:wert 。
#include<stdio.h> #include<string.h>//聲明 int removeDuplicates(char* nums, int numsSize);int main(void) {//定義局部變量int i,numsSize=0,a=0;char nums[64];//用戶輸入printf("請輸入一個字符串:");scanf("%s",nums);//計算字符串字符個數numsSize=strlen(nums);//將返回結果加1給numsSize重新賦值numsSize=removeDuplicates(nums,numsSize)+1;//打印結果printf("去除重復字符后的結果:");for ( i = 0; i < numsSize; i++){printf("%c",nums[i]);}return 0; }//去除字符串里的重復字符 函數 int removeDuplicates(char* nums, int numsSize) {//定義局部變量int i,j,k,y=numsSize-1,a=0;//利用for循環遍歷for(i=0;i<numsSize;i++){for(j=i+1;j<numsSize;j++){//判斷是否有重復字符if(*(nums+i)==*(nums+j)){numsSize--;a++;for ( k = j; k < numsSize; k++){//利用指針解引用去除重復*(nums+k)=*(nums+k+1);}j--;}}}//將后面不需要的值全部賦值為空for ( i = 0,j=y; i < a; i++,j--){*(nums+j)='\0';}//返回不重復字符的個數return numsSize-1; }? 結果輸出:
?
?
? ? ? ?**有錯誤或者寫的不好的地方,可以評論區留言或者聯系我更改**
?
?
總結
以上是生活随笔為你收集整理的C语言基础程序题及答案(适合学完C基础的人练练手)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java数据结构源码_java 数据结构
- 下一篇: 学习C语言的入门程序