Ⅰ c語言習題求解答
是整個系統的核心,也是整個系統最高的執行單位。它負責整個系統指令的執行,數學與邏輯的運算,數據的存儲與傳送,以及對內對外輸入與輸出的控制
Ⅱ C語言簡單解答下答案,謝謝了
第一題:extern int x,y;引用全局變數中的x和y;(也就是在main()上面的int x,y;).如果主函數里沒有num();這一句,那輸出結果就是122,但是現在它調用了一次,num().所以答案就選c了;
第二題:正確來講應該把fun()函數放在主函數上面,或者在主函數中聲明,否則是出錯的.fun()函數里有printf功能,當主函數執行到fun(j,6);時會輸出一次,而fun()中有自己的定義int x=7,所以他輸出的時候是i=7; j=6; x=7.而主函數中輸出的時候是i=2; j=7; x=5,因為這個時候的x和fun函數中的x是不同的值,雖然名字一樣,但在不同的作用域.
Ⅲ C語言題目解答~~
答案為:(OON,C)
首先,str是一個二維字元串數組,保存著"SUN""MOON""STAR""X"四個字元串,
*(str+1)表示str[1]的首地址,即"MOON"
*(str+1)+1後地址後移一位,列印的是"OON"
*(str+2)表示str[1]的首地址,即"STAR"
(*(st+2)+2)表示str[2][2]的地址,即'A'的地址,而*(*(st+2)+2)表示取出了這個字元,這個表達式的值就是'A'。而最後一個+2表示將"A"的ASCII碼+2,即後移2位,就是'C'
Ⅳ c語言程序解答(在線等)
根據題意:
1、項目序號應為唯一值,用自增變數填充。
2、時間使用struct tm結構體(考慮如需時間運算,可使用相關函數)。
3、自定義結構類型SIINFO,分別實現插入鏈表和列印鏈表兩個功能。
4、由於這個演示程序執行完就結束程序了。所以鏈表我沒有寫free釋放內存,如你後期擴充代碼,自己寫釋放(除程序結束,malloc申請內存不會自動釋放)。
下面是演示代碼:
#include <stdio.h>
#include <malloc.h>
#include <time.h>
#define MS 4//最大類型個數
#define MN 20//名稱最大字元長度
char stypes[MS][10]={"速度型","力量型","耐力型","對抗型"};//項目類別,自行擴展,對應修改MS常量
typedef struct SportsItemInfo//定義一個體育項目結構類型
{
int id;//項目序號,從數據結構考慮,該項不能重復,應設為自增從0開始(實際開發,這個值由資料庫分配)。
char name[MN+1];//項目名稱
int stype;//項目類(對應stypes行下標)
int n;//參賽人數
struct tm sDate;//競賽時間
struct SportsItemInfo *next;
}SIINFO;
SIINFO *insert2List(SIINFO *p_sHead);//插入新數據,首次插入參數傳NULL。參數:鏈表頭節點地址(不是首節點)。成功返回頭節點,失敗返回NULL。
void selectFList(SIINFO *p_sHead);//查詢鏈表
int main()
{
char c;
SIINFO *p_sHead=NULL,*stemp=NULL;
printf("新增體育項目: ");
while(1)
{
stemp=insert2List(p_sHead);
if(!stemp)
{
printf("ERROR! ");
return 1;
}
p_sHead=stemp;
printf("是否繼續輸入(Y/N):");
c=0;
while(c!='Y' && c!='N')scanf("%c",&c);
if(c=='N') break;
}
selectFList(p_sHead);
return 0;
}
void selectFList(SIINFO *pht)
{
int i=0;
if(pht)
{
printf(" 輸出鏈表信息: ");
while(pht->next)
{
printf("-----------項目%d--------- ",++i);
printf("項目序號:%d ",pht->next->id);
printf("項目名稱:%s ",pht->next->name);
printf("項目類別:%s ",stypes[pht->next->stype]);
printf("參賽人數:%d ",pht->next->n);
printf("參賽時間:%04d-%02d-%02d %02d:%02d:%02d ",pht->next->sDate.tm_year+1900,pht->next->sDate.tm_mon+1,pht->next->sDate.tm_mday,pht->next->sDate.tm_hour,pht->next->sDate.tm_min,pht->next->sDate.tm_sec);
printf("-------------------------- ");
pht=pht->next;
}
}
}
SIINFO *insert2List(SIINFO *p_sHead)
{
static int x=0;
static SIINFO *p_sTail=NULL;
int i;
SIINFO *p_new=NULL;
if(!p_sHead){
p_sHead=(SIINFO*)malloc(sizeof(SIINFO));
if(!p_sHead)
return NULL;
p_sHead->next=NULL;
p_sTail=NULL;
}
p_new=(SIINFO*)malloc(sizeof(SIINFO));
if(!p_new)
return NULL;
p_new->next=NULL;
p_new->id=x++;
printf("-------------------------- ");
printf("項目名稱:"),scanf("%s",p_new->name);
for(i=0,printf("項目類(");i<MS-1;printf("%d、%s,",i,stypes[i]),i++);
printf("%d、%s):",i,stypes[i]);
p_new->stype=-1;
while(p_new->stype<0 || p_new->stype>MS-1)scanf("%d",&p_new->stype);
printf("參賽人數:"),scanf("%d",&p_new->n);
printf("參賽時間(輸入格式:年-月-日 時:分:秒):");
scanf("%d-%d-%d %d:%d:%d",&p_new->sDate.tm_year,&p_new->sDate.tm_mon,&p_new->sDate.tm_mday,&p_new->sDate.tm_hour,&p_new->sDate.tm_min,&p_new->sDate.tm_sec);
p_new->sDate.tm_mon--;//tm結構的月份是從0開始對應1月
p_new->sDate.tm_year=p_new->sDate.tm_year-1900;//tm結構的年份是實際年份-1900
if(!p_sHead->next)
p_sHead->next=p_new;
else
p_sTail->next=p_new;
p_sTail=p_new;
printf("-------------------------- ");
return p_sHead;
}
Ⅳ c語言試題解答
字元也包括數字啊,所以當然%c是輸出1啦,至於49,你可以看看ASCII,1對對應的ASCII碼是49。
Ⅵ c語言簡單題目求解答及解析
1、s[0].a = 1,s[0].b = 2;s[0].c = 3;s[0].s = 0;s[1].a = 4;s[0].b = 5;s[0].c = 6;s[0].s = 0;所以t = s[0].a + s[1].b = 1 + 5 = 6
2、float x;佔用4個位元組(因系統的不同而不同),char c[6];佔6個位元組,故聯合體aa的長度為6,那麼變數Z佔用6個位元組。
int num;佔用4個位元組(因系統的不同而不同),float w[5];佔用5×4 = 20個位元組,double ave;佔用8個位元組(因系統的不同而不同),所以結構體st佔用的位元組數為4 + 20 + 8 = 32個位元組,即變數W佔用332個位元組空間。
3、PER是類型名,就像char int double float 一樣可以聲明變數及同類型指針,其聲明的變數可以作為函數的啞元或實元,當然也可以作為函數的返回值類型。
4、可以這樣引用data的成員
t->x = 3.6,
scanf("%f",&t->y);
Ⅶ c語言題解釋
第一道題:第一行,是你定義下面程序多要用到的變數,int是整型,也就是說只能是整數,比如2;float類型,就是小數,比如2.3等,下面的scanf是讓你輸入數值的意思,括弧後面有三個字母變數,也就是說你要輸入三個數字,分別賦給a,b,c;printf是輸出你剛才的數值。解答完畢。
第二道題意思差不多,double類型也是小數類型,精確度比float類型要高。後面c=b=a=40/3,"/"是除的意思,把商分別賦給a,b,c。這時a,b,c的值就都是一樣的了。
你這樣問是不理智的,你可以找C語言的書籍來學。都很簡單明了,實在不行,可以報這樣的學習班。很多的。
Ⅷ c語言的題,求大神解答
解:1、A項錯誤:有些不可見字元可放入緩沖區,例如:回車、空格。
B項錯誤:有些輸入函數有緩沖區,有些沒有,例如:getchar() 有緩沖區,getch() 無緩沖區,getche() 無緩沖區。
C項錯誤:緩沖區不需要定義。
所以選D。
2、getchar()函數有緩沖區。getchar函數的返回值是用戶輸入的字元的ASCII碼,若文件結尾則返回-1(EOF),且將用戶輸入的字元回顯到屏幕。如用戶在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤緩存區中,等待後續getchar調用讀取。也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字元,直到緩沖區中的字元讀完後,才等待用戶按鍵。
該程序調用getchar()函數三次,所以getchar()函數依次讀取前三個輸入的數據,空格也算,所以選B。
3、回車是用\n表示,且((c=getchar())!='\n')注意這里的圓括弧不能丟,因為!=的優先順序比=高,如果去掉了外面的括弧就等價於 c = (getchar()!='\n')。所以選C。