首页 c语言笔试题

c语言笔试题

举报
开通vip

c语言笔试题c语言笔试题 1????Ò??ö×Ö?û??ÄæÐò void reverse(char *s) { char ch,*p1=s,*p2=s; int size; size = strlen(s); p2=s+size-1; while(p2 > p1) { ch=*p1; *p1=*p2; *p2=ch; p1++; p2--; } } 2????Ò??öÁ??íÄæÐò struct node *reverse(struct node *head) { struct nod...

c语言笔试题
c语言笔试题 1????Ò??ö×Ö?û??ÄæÐò void reverse(char *s) { char ch,*p1=s,*p2=s; int size; size = strlen(s); p2=s+size-1; while(p2 > p1) { ch=*p1; *p1=*p2; *p2=ch; p1++; p2--; } } 2????Ò??öÁ??íÄæÐò struct node *reverse(struct node *head) { struct node *p, *q, *r; if(head == NULL || head->next == NULL) return head; p=head->next; q=p->next; p->next=NULL; while(q) { r=q; q=q->next; head->next=r; r->next=p; p=r; } return head; } 3???ÆËãÒ??ö×Ö?ÚÀï??byte??ÀïÃæÓÐ?àÉÙbit??ÖÃ1 int count_ones(unsigned a) { int count = 0; while(a) { if(a & 1) count++; a >>= 1; } return count; } 4???àÐ?Ò??ö C º?Êý???ú?ÊýÔÚÒ??ö×Ö?û??ÖÐÕÒµ??ÉÄܵÄ×î??µÄ×Ó×Ö?û????ÇÒ?Ã×Ö?û??ÊÇÓÉ Í?Ò?×Ö?û×é?ɵÄ?? char * search(char *cpSource, char ch) { char *cpTemp=NULL, *cpDest=NULL; int iTemp, iCount=0; while(*cpSource) { if(*cpSource == ch) { iTemp = 0; cpTemp = cpSource; while(*cpSource == ch) { ++iTemp; ++cpSource; } if(iTemp > iCount) { iCount = iTemp; cpDest = cpTemp; } if(!*cpSource) break; } ++cpSource; } return cpDest; } 5???ÓÒ??ö?ø??µÄ×Ö?û??ÖÐÕÒ?öÄ?Ò?×Ó×Ö?û??µÄÎ?ÖÃ???Ó1?ªÊ?????Èô×Ö?û?? ÖÐÃ?ÓÐÖ???µÄ×Ó????Ôò?ê?ÇΪ0. //"efg"ÔÚ×Ö?û??"abcdefghijk"ÖÐÎ?×ÓΪ5 #include int indexOf(char *sub, char *source) { int ret; int i, j = 0; for(i = 0; source[i] != '\0' && sub[j] != '\0'; i++) { if(source[i] == sub[j]) { if(j == 0) ret = i + 1; j++; } else { ret = 0; j = 0; } } if(sub[j] == '\0') return ret; else return 0; } int main() { printf("%d\n",indexOf("defg","abcdefghijk")); return 0; } 6???Ñ×Ö?û??ת???ÉÕûÊý //ÊäÈëÒ??ö?íÊ?ÕûÊýµÄ×Ö?û?????Ñ?Ã×Ö?û??ת???ÉÕûÊý??Êä?ö??ÀýÈçÊäÈë×Ö ?û??"345"??ÔòÊä?öÕûÊý345?? #include int atoi(char *s) { int num = 0, temp; int negative = 0; if(s == NULL) return 0; if(*s == '+' || *s == ' ') { s++; if(*s == '\0') return 0; } if(*s == '-') { s++; negative = 1; if(*s == '\0') return 0; } while(*s) { temp = *s - '0'; s++; if(temp >= 0 && temp <= 9) num = num * 10 + temp; else return 0; } if(negative) num = 0 - num; return num; } int main() { char s[] = "1234"; int num; num = atoi(s); if(num) printf("%d\n", num); else printf("invalid input!\n"); return 0; } 7??ÕûÊýת??Ϊ×Ö?û?? #include void long2string(long num, char *s) { int i = 0, j = 0; char chtemp; int negative = 0; if(num < 0) { s[i++] = '-'; j = 1; num = 0 - num; } while(num) { s[i++] = '0' + num % 10; num /= 10; } s[i] = '\0'; for(i--; i > j; j++, i--) { chtemp = s[j]; s[j] = s[i]; s[i] = chtemp; } } int main() { char s[50]; long2string(-12345, s); printf("%s\n", s); return 0; } 8????ÓÃ?ý??(????ÄÜÊ?ÓÃ"/"ºÅ)ºÍ?âº?Êý,?ÆËã285 / 16µÄÉ̺ÍÓàÊý, ÒªÇóÐ?ÂÊ??Á??ß. int main(int argc, char* argv[]) { int a =285; unsigned int k,n=0; n=a>>4; k=a-(n<<4); printf("%d %d",n,k); return 0; } 9???àÐ?×Ö?û????תº?Êý:strrev char * my_strrev(char *str) { char *right = str; char *left = str; char ch; while (*right) right++; right--; while (left < right) { ch = *left; *left++ = *right; *right-- = ch; } return(str); } 10???àÐ?×Ö?û????תº?Êý:strrev º?ÊýÔ,ÐÍΪ: char* strrev(char* dest, char* src); ÌáÊ?:destºÍsrc?ÉÄÜÊÇÍ?Ò??ö×Ö?û??. #include void str_reverse(char *dest, char *source) { char c; dest = source; while(*dest) dest++; dest--; while(source < dest) { c = *dest; *dest = *source; *source = c; dest--; source++; } } int main() { char str[] = "I love the girl!"; str_reverse(str, str); puts(str); return 0; } 11??Í?ÉÏ??mycode?? #include #include #include char *str_reverse(char *dest, char *source) { char *temp; int size, i = 0; size = strlen(source); temp = (char *)malloc(size + 1); for(i = size - 1; i >= 0; i--) { *(temp + i) = *source++; } for(i = size - 1; i >= 0; i--) { *(dest + i) = *(temp + i); } *(dest + size) = '\0'; free(temp); return dest; } int main() { char str[] = "I love the girl!"; char str1[50]; str_reverse(str1, str); puts(str1); return 0; } 12???ìËÙÅÅÐòËã?? #include int partion(int *s, int low, int high) { int temp; temp = s[low]; while(low < high) { while(low < high && s[high] >= temp) high--; s[low] = s[high]; while(low < high && s[low] <= temp) low++; s[high] = s[low]; } s[low] = temp; return low; } void qsort(int *s, int low, int high) { int pivot; if(low < high) { pivot = partion(s, low, high); qsort(s, low, pivot - 1); qsort(s, pivot + 1, high); } } int main() { int i; int s[10] = {9,40,18,36,20,25,15,3,30,11}; for(i = 0; i < 10; i++) printf("%d\t", s[i]); printf("\n"); qsort(s,0,9); for(i = 0; i < 10; i++) printf("%d\t", s[i]); printf("\n"); return 0; } 13???Ä?øµÄÃ?ÅÝÅÅÐòËã?? void sort(int *s, int n) { int i, j; int temp; int flag = 1; for(i = n - 2;i >= 0; i--) { for(j = n-1; j >= n-i-1; j--) { if(s[j] < s[j - 1]) { temp = s[j]; s[j] = s[j - 1]; s[j - 1] = temp; flag = 0; } } if(flag) break; flag = 1; } } 14???àÐ?º?Êý strcpy char *strcpy(char *dest, const char *src) { char *s = dest; if(dest == NULL || src == NULL) return NULL; while((*s++ = *src++) != '\0'); return dest; } 15???àÐ?º?Êý memcpy void *memcpy(void *memTo, const void *tempFrom, size_t n) { assert((memTo != NULL) && (memFrom != NULL)); //memToºÍmemFrom?ØÐëÓÐÐ? tempFrom = (char *)memFrom; //???æmemFromÊ×µØÖ? tempTo = (char *)memTo; //???æmemToÊ×µØÖ? while(size -- > 0) //Ñ,??size?Î????ÖÆmemFromµÄÖµµ?memToÖÐ *tempTo++ = *tempFrom++ ; return memTo;14 } 16???þ?Ö?éÕÒËã?? 1)?ǵÝ?é????ʵÏÖ int search(int a[], int key, int n) { int low, high, mid; low = 0; high = n-1; while(low <= high) { mid = (low + high) / 2; if(a[mid] == key) return mid; else if (a[mid] < key) low = mid + 1; else high = mid - 1; } return -1; } 2) µÝ?é????ʵÏÖ int search(int a[], int key, int low, int high) { int mid; if(low > high) return -1; mid = (low + high) / 2; if(a[mid] == key) return mid; else if(a[mid] < key) return search(a, key, mid + 1, high); else return search(a, key, low, mid - 1); } 17???ø?ÌÓëÏß?̵ÄÇø?ð Ïß?ÌÊÇÖ??ø?ÌÄÚµÄÒ??öÖ?Ðе?Ôª,Ò?ÊÇ?ø?ÌÄÚµÄ?ɵ??ÈʵÌå. Óë?ø?̵ÄÇø?ð: (1)µØÖ??Õ?ä:?ø?ÌÄÚµÄÒ??öÖ?Ðе?Ôª;?ø?ÌÖÁÉÙÓÐÒ??öÏß?Ì;ËüÃÇ??Ïí?ø?ÌµÄ µØÖ??Õ?ä;?ø?ø?ÌÓÐ×Ô?º?ÀÁ?µÄµØÖ??Õ?ä; (2)×ÊÔ?ÓµÓÐ:?ø?ÌÊÇ×ÊÔ??ÖÅäºÍÓµÓеĵ?Î?,Í?Ò??ö?ø?ÌÄÚµÄÏß?Ì??Ïí?ø?̵ Ä×ÊÔ? (3)Ïß?ÌÊÇ??ÀíÆ?µ??ȵÄ?ù??µ?Î?,µ??ø?Ì??ÊÇ. ?ø?ÌÊÇ?ßÓÐÒ????ÀÁ???ÄܵÄ?ÌÐò?ØÓÚÄ??öÊý?Ý??ºÏÉϵÄÒ??ÎÔËÐÐ?î??,?ø?ÌÊ ÇϵÍ??øÐÐ×ÊÔ??ÖÅäºÍµ??ȵÄÒ??ö?ÀÁ?µ?Î?. Ïß?ÌÊÇ?ø?̵ÄÒ??öʵÌå,ÊÇCPUµ??ȺÍ?ÖÅɵÄ?ù??µ?Î?,ËüÊÇ?È?ø?Ì?üÐ?µÄÄÜ? ÀÁ?ÔËÐеÄ?ù??µ?Î?.Ïß?Ì×Ô?º?ù??ÉÏ??ÓµÓÐϵÍ?×ÊÔ?,Ö?ÓµÓÐÒ?µãÔÚÔËÐÐÖÐ? Ø???ÉÉÙµÄ×ÊÔ?(Èç?ÌÐò?ÆÊýÆ?,Ò?×é?Ä?æÆ?ºÍÕ?),µ?ÊÇËü?ÉÓëÍ?ÊôÒ??ö?ø?̵ ÄÆäËûµÄÏß?Ì??Ïí?ø?ÌËùÓµÓеÄÈ???×ÊÔ?. Ò??öÏß?Ì?ÉÒÔ????ºÍ??ÏúÁíÒ??öÏß?Ì;Í?Ò??ö?ø?ÌÖеÄ?à?öÏß?ÌÖ??ä?ÉÒÔ??? ?Ö?ÐÐ 18?? ?ÁÎÄ?þfile1.txtµÄÄÚÈÝ??ÀýÈç???º 12 34 56 Êä?öµ?file2.txt?º 56 34 12 ??ÄæÐò?? #include #include int main() { int max = 10; int *a = (int *)malloc(max * sizeof(int)); int *b; int i = 0; FILE *fp1, *fp2; fp1 = fopen("f:/a.txt", "r"); if(fp1 == NULL) { printf("error1!\n"); exit(-1); } fp2 = fopen("f:/b.txt", "w"); if(fp2 == NULL) { printf("error1!\n"); exit(-1); } while(fscanf(fp1, "%d", &a[i]) != EOF) { i++; if(i > max) { max = max * 2; b = (int *)realloc(a, max * sizeof(int)); if(b == NULL) { printf("error3!\n"); exit(-1); } a = b; } } for(i--; i >= 0; i--) { fprintf(fp2, "%d\n", a[i]); } fclose(fp1); fclose(fp2); free(a); return 0; } 19??a.txtÖÐ×Ö?û??ÄæÐòÊä?öµ?b.txtÖÐ #include int main(int argc, char *argv[]) { FILE *fr = NULL; FILE *fw = NULL; char buf[1024]; int i = 0; fr = fopen("f:/a.txt", "rb"); fw = fopen("f:/b.txt", "wb"); while((buf[i] = fgetc(fr)) != EOF) i++; for(i--; i >= 0; i--) fputc(buf[i], fw); fclose(fr); fclose(fw); return 0; } 20??ÒÑÖªÁ??öÁ??íhead1 ºÍhead2 ??×ÔÓÐÐò??Çë?ÑËüÃǺÏ???ÉÒ??öÁ??íÒÀÈ?ÓÐÐò??(??ÁôËùÓÐ?áµã?????ã?óÐ?Ï àÍ??? struct node { int data; struct node *next; }; typedef struct node Node; Node *merge(Node *head1, Node *head2) { Node *p1 = NULL; Node *p2 = NULL; Node *head = NULL; Node *pcurrent = NULL; if(head1 == NULL) return head2; if(head2 == NULL) return head1; if(head1->data < head2->data) { head = head1; p1 = head1->next; p2 = head2; } else { head = head2; p1 = head1; p2 = head2->next; } pcurrent = head; while(p1 != NULL && p2 != NULL) { if(p1->data < p2->data) { pcurrent->next = p1; pcurrent = p1; p1 = p1->next; } else { pcurrent->data = p2; pcurrent = p2; p2 = p2->next; } } if(p1 = NULL) pcurrent->next = p2; if(p2 = NULL) pcurrent->next = p1; return head; } 21??µ?Ñ,??Á??í??Ã?ÊýÈýÉ?È?Ò??ö?Úµã #include #include struct node { int data; struct node *next; }; typedef struct node Node; Node *creat_list(Node *h) { Node *p, *q; int i; h = (Node *)malloc(sizeof(Node)); h->data = 0; q = h; for(i = 1; i < 1000; i++) { p = (Node *)malloc(sizeof(Node)); p->data = i; p->next = NULL; q->next = p; q = p; } p->next = h; return h; } Node *del_per3(Node *h) { Node *q; while(h->next != h) { q = h->next->next; h->next->next = h->next->next->next; h = h->next->next; free(q); } return h; } void display(Node *head) { Node *p; p = head; do { printf("%d ", p->data); p = p->next; }while(p != head); printf("\n"); } int main() { Node *head = NULL; Node *last; head = creat_list(head); display(head); last = del_per3(head); printf("%d\n", last->data); free(last); return 0; } 22??
本文档为【c语言笔试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_562397
暂无简介~
格式:doc
大小:46KB
软件:Word
页数:0
分类:企业经营
上传时间:2018-04-03
浏览量:18