1.
#include<stdio.h>
#include<string.h>
void main()
{
char *s1="ABCDEF",*s2="aB";
s1++;
s2++;
puts(s1);
puts(s2);
printf("%d\n",strcmp(s1,s2));
}
答案:1
2.程序段:
int?x=12;
double?y=3.141593;
printf(“%d%8.6f,x,y);的輸出結果是(
A。123.141593
B.12?
? ?3.141593
C.12?3.141593
D.12?3.141593
3.以下結構體類型說明和變量定義中正確的是()。
A. typedefstruct
{int?n;?char?c;} REC;
REC? t1,t2;?
B.?typedef?struct?
{int?n;?char?c;};?
REC?t1,t2;?
C.?typedef?struct?REC;
{int?n=0;?char?c='A';} t1,t2;
解析:
?用typedef聲明新類型名
1.先按定義變量的方法寫出定義
2.將變量名換成新類型名
3.在最前面加typedef
4。用新類型名去定義變量
4.下面程序的文件名為t.exe?在DOS下輸入的命令行參數為:t?to?meet?me<回車>則程序輸出的結果是(?)。?
main(argc,argv)
int?argc;char?*argv【】;
{
int?i;
printf("%d\n",argc);}
A.3?B.4?C.?2?D.?以上答案都不正確
解析:?arac?中存入的是命今行中字符串的個數。argv是一#include?"stdio.h"?個指向字符型的指針數組的指針。
5.若有定義:char*st="how?are?you";,下列程序段中正確的是()
A.?char?a[11],*p;strcpy(p,&st[4]);? ?B.?char?a[11];strcpy(++a,?st);
C.char?a[11?];?strepy(a,st);? ? D.?char?a[],*p;strepy(p=&a[1],st+2);
解析:
本題綜合考查字符數組的賦值和?strdov?函數的用法,0港言不允許用賦值表達式對字符數組賦值如下面的語句就是非法的·strl=?"China?“China”這?5?個字符放到數組?strl?中,除了逐個地輸入外還能使用?stranv?民的?該輛數的功能是將一個字符串復制到一字符數組中例加·strcnv(strl?"China?stroov/stdolstr2);注音不能企圖用以下語句來實行賦值(將str2的值傳給?strl):strl=str2;不能用賦體語何將一個字符串常量或字符數組直接給一個字符數組
strcnv?函數的結構是·strcnv(安符數細?1(字符串?2)
其中雲要注音的是?字符數組1的長度不應小于字符串?的長度?"字符數組1”必師寫成數組名形式如(strl)?“字符串2”可以是字符數組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。
A. p沒有初始化。加上p=a;或者char?a[11】.*p:?strqpy(p=a,&st[4]);
從st[4]開始復制給p,最終p=“are?you
Ba是數組名,沒法自增。
Ca只有11個字符,而st?有11個字符?再加上?10是12個,不夠用。
D?沒給a的長度。
?
答案:AABC(勉強對)
1.%8.6f? ?8指總長為8,小數點為6位